基础数据类型--列表
列表中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
- 按照索引取值,与元素本身的数据类型一致。
- 按照切片取值,取出来的是新列表。
列表:查
切边的方法与字符串相同 list[起始索引:结束索引:步长]
li = [1, (2, 3), 2, 3, 4, 5, 6,] l1 = li[:3] print(l1) print(li[0],type(li[0])) #按照索引取值,保持元素本身的数据类型 print(li[1],type(li[1])) l2 = li[:] #按照切片取值,得到一个新列标 print(l2) [1, (2, 3), 2] 1 <class 'int'> (2, 3) <class 'tuple'> [1, (2, 3), 2, 3, 4, 5, 6]
for循环查询。
l = ['WuSir', 'alex', 'OldBoy', 'barry'] for i in l: print(i) WuSir alex OldBoy barry
列表:增
append() 在列表末尾追加指定的元素。
l = ['WuSir', 'alex', 'OldBoy', 'barry'] l.append('景女神') l.append(1) l.append([1, 2, 3]) print(l) ['WuSir', 'alex', 'OldBoy', 'barry', '景女神', 1, [1, 2, 3]]
insert() 在指定索引前插入元素。
l = ['WuSir', 'alex', 'OldBoy', 'barry'] l.insert(1, '葫芦') #在索引为1的元素前插入'葫芦' print(l) ['WuSir', '葫芦', 'alex', 'OldBoy', 'barry']
extend() 将一个可迭代对象中的单个元素拆分后,一次性追加末至列表尾,可迭代对象可以是字符串也可以列表。
l = ['WuSir', 'alex', 'OldBoy', 'barry'] l.extend([1, '2122', 56]) #将列表中的元素拆分后,追加至列表末尾 print(l) l.extend('abc') #将字符串拆分为单个字符,追加至列表末尾 print(l) ['WuSir', 'alex', 'OldBoy', 'barry', 1, '2122', 56] ['WuSir', 'alex', 'OldBoy', 'barry', 1, '2122', 56, 'a', 'b', 'c']
列表:删
pop() 按照索引删除,并返回被删除元素。
l = ['WuSir', 'alex', 'OldBoy', 'barry'] ret = l.pop(1) #保存返回值 print(ret) print(l) alex ['WuSir', 'OldBoy', 'barry']
remove() 按照元素删除。
l = ['WuSir', 'alex', 'OldBoy', 'barry'] l.remove('alex') print(l) ['WuSir', 'OldBoy', 'barry']
clear() 清空列表。
l = ['WuSir', 'alex', 'OldBoy', 'barry'] l.clear() print(l) []
del 1 删除列表。2,按照索引删除。3.可以按照切片去删除。
l = ['WuSir', 'alex', 'OldBoy', 'barry'] del l[1] print(l) del l[:1] print(l) del l print(l) ['WuSir', 'OldBoy', 'barry'] ['OldBoy', 'barry'] NameError: name 'l' is not defined
列表:改
按照索引改。
l = ['WuSir', 'alex', 'OldBoy', 'barry'] l[0] = '日天' print(l) l[2] = '老男孩' print(l) ['日天', 'alex', 'OldBoy', 'barry'] ['日天', 'alex', '老男孩', 'barry']
按照切片去改。 将一个可迭代对象中的单个元素拆分后,替换到指定区域
l = ['WuSir', 'alex', 'OldBoy', 'barry']
l[:3] = 'abc' #首相指定区域删除,然后将字符串拆分后,插入指定区域。 print(l) l[:3] = [11, 22, 33, 44] #列表相同。都是以最小元素进行拆分。 print(l) ['a', 'b', 'c', 'barry'] [11, 22, 33, 44, 'barry']
l = ['WuSir', 'alex', 'OldBoy', 'barry']
l[:3:2] = 'ab' #加上步长,需要一一对应。 print(l) ['a', 'alex', 'b', 'barry']
其他方法
l = ['WuSir', 'alex', 'OldBoy', 'barry']
print(len(l)) # 总个数
print(l.count('WuSir')) # 某个元素出现的次数
l1 = [1, 9, 8, 4, 3, 2, 6,] l1.sort() # 正序排序 print(l1)
l1.sort(reverse=True) # 倒叙排序 print(l1)
l1.reverse() # 翻转 print(l1) 4 1 [1, 2, 3, 4, 6, 8, 9] [9, 8, 6, 4, 3, 2, 1] [1, 2, 3, 4, 6, 8, 9]
坑:再循环一个列表时,不要改变列表的大小,这样会影响结果。
如果真在循环时删除,则需要重后往前删。
l1 = [11, 22, 33, 44, 55] for i in range(len(l1)): if i % 2 == 1: del l1[i] print(l1) [11, 33, 44]
l1 = [11, 22, 33, 44, 55] for i in range(len(l1)-1,-1,-1): if i % 2 == 1: del l1[i] print(l1)
[11, 33, 55]
基础数据类型--元组
元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。
tu = (1, 2, 33, 'alex') print(tu[1]) #查询索引为1的元素 print(tu[:-1]) #通过切片会获得一个新的元组 for i in tu: print(i) 2 (1, 2, 33) 1 2 33 alex