列表是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]