python数据类型之列表(list)和其常用方法

列表是python常用数据类型之一,是可变的,可由n = []创建,也可由n = list()创建,第一种方法更常用。

常用方法总结:

# 创建方法  n = [] 或者 n = list()

# index 查找索引值
li = ['Edward', 'Mark', 'John', 5435, 123, 8, 8, 8, 6, 6, True, 1, False, 0]
print(li.index(True))  # 10
print(li.index(1))  # 10 1也可以代表True
print(li.index(False))  # 12
print(li.index(0))  # 12 0也可以代表False
print(li.index(8))  # 5 从左往右找不到第一个匹配的就返回

# 切片,包含开头,但是不包含结尾,顾头不顾尾。
print(li[1:3])  # ['Mark', 'John']
# 不能从右往左且,只能从左往右切
print(li[-5:-1])  # [6, True, 1, False]
# 如果想要最后一个,那么直接不写就行
print(li[-5:])  # [6, True, 1, False, 0]
# 只要前面的几个的,冒号加想要的数字就行
print(li[:5])  # ['Edward', 'Mark', 'John', 5435, 123]
# 步长,再在后面加一个冒号,然后写想要按几步走,2步走就是跳一个,以此类推。
print(li[:5:3])  # ['Edward', 'John', 123]
print(li[::2])  # 跳一步走,从头走到尾

# 增加
li.append('peiqi')  # 只加到最后
print(li)

# 插入
li.insert(0, 'abc')  # 插入是加到前面
print(li)  # ['abc', 'Edward', 'Mark', 'John', 5435, 123, 8, 8, 8, 6, 6, True, 1, False, 0, 'peiqi']

# 修改
li[0] = 'Mark'
print(li)  # ['Mark', 'Edward', 'Mark', 'John', 5435, 123, 8, 8, 8, 6, 6, True, 1, False, 0, 'peiqi']

# 修改多个值
li[3:6] = 'Li Lei'
print(li)  # ['Mark', 'Edward', 'Mark', 'L', 'i', ' ', 'L', 'e', 'i', 8, 8, 8, 6, 6, True, 1, False, 0, 'peiqi']
# 这个方法会显示多出来的,很少用


# 删除
li.pop()  # 删除最后一个
print(li)  # ['Mark', 'Edward', 'Mark', 'L', 'i', ' ', 'L', 'e', 'i', 8, 8, 8, 6, 6, True, 1, False, 0]

li.remove(8)  # 指定删除,从左开始找,找到第一个后删除,但只能删除一个。
print(li)  # ['Mark', 'Edward', 'Mark', 'L', 'i', ' ', 'L', 'e', 'i', 8, 8, 6, 6, True, 1, False, 0]

del li[3:9]  # 全局方法,可以删除任何东西,可以批量删除
print(li)  # ['Mark', 'Edward', 'Mark', 8, 8, 6, 6, True, 1, False, 0]

# range也是顾头不顾尾,取第一个值不取最后一个值。

# while循环可以是死循环,for循环有边界


# 排序
li2 = ['a', 'e', 'b', 1, 34, 2, 'c']
# li2.sort()  # 报错,int和str之间不能排序

li2 = ['a', 'z', 'c', 'm', 'u', 'G', '!', '*', ',', '.']
li2.sort()  # 按ASCII码表的顺序来排
print(li2)  # ['!', '*', ',', '.', 'G', 'a', 'c', 'm', 'u', 'z']

# 翻转

li2.reverse()
print(li2)  # ['z', 'u', 'm', 'c', 'a', 'G', '.', ',', '*', '!']

# 拼接列表

# 方法1

li3 = [1, 2, 3]
li4 = ['a', 'b', 'c']
print(li4 + li3)  # ['a', 'b', 'c', 1, 2, 3]

# 方法2
li5 = ['z', 'x', 'c']
li3.extend(li5)
print(li3)  # [1, 2, 3, 'z', 'x', 'c']

# 清空列表 clear
li6 = [1, 123, 312, '12312', '8', '*', 'asd']
print(li6.clear())  # None

# copy

li7 = [3, 4, 5]
li8 = li7  # li8指向了li7,而不是li7的值
li7[0] = 'alex'
print(li7)  # ['alex', 4, 5]
print(li8)  # ['alex', 4, 5]

li9 = [1, 2, 3]
li10 = li9.copy()
li9[0] = 'alex'
print(li9)  # ['alex', 2, 3]
print(li10)  # [1, 2, 3]

猜你喜欢

转载自www.cnblogs.com/lshedward/p/9917681.html