python中列表、元组、字典、集合的增删改查方法及常用方法:(python版本:python3)
列表:创建一个列表,只需要把用逗号分隔开的不同数据项使用方括号[ ]括起来即可。列表的数据项不需要具有相同的类型。列表的索引是从0开始,列表可以进行截取(切片)。
列表:是有序的
创建列表: |
list1 = ['physics', 'Lucy', 1997,True] |
list2 = [56,'Tom',['Ninda',88,63],56] |
list3 = [23,34] |
访问列表中的元素: |
访问的方式可以是通过下标索引,也可以是以方括号的形式截取字符。 |
list1 = ['physics', 'Lucy', 1997,True] print(list1[0]) #取下标为0的元素 print(list1[1:3]) #[起始位置:结束位置] print(list1[-1]) #取倒数第一个位置 print(list1[0:4:2])#[起始位置:结束位置:步长] print(list1[::-1]) #列表逆序输出 |
输出结果: |
physics ['Lucy', 1997] True ['physics', 1997] [True, 1997, 'Lucy', 'physics'] |
增加列表中的元素: |
list.append(obj) 在列表末尾添加新的对象 |
list1.append("Ann") print(list1) list1.append(list3) print(list1) |
输出结果: |
['physics', 'Lucy', 1997, True, 'Ann'] ['physics', 'Lucy', 1997, True, 'Ann', [23, 34]] |
list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) |
list1.extend(list3) print(list1) |
输出结果: |
['physics', 'Lucy', 1997, True, 23, 34] |
list.insert(index, obj) 将对象插入列表 |
list3 = [23,34] list3.insert(0,11) print(list3) list3.insert(-1,99) print(list3) |
输出结果: |
[11, 23, 34] [11, 23, 99, 34] |
删除列表中的元素 |
使用del语句来删除列表的元素 |
list1 = ['physics', 'Lucy', 1997,True] list3 = [23,34] del list3[0] print(list3) del list1[1:4:2] print(list1) |
输出结果: |
[34] ['physics', 1997] |
list.pop([index=-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 |
list1 = ['physics', 'Lucy', 1997,True] print(list1.pop(0)) list1.pop() print(list1) |
输出结果: |
physics ['Lucy', 1997] |
list.remove(obj) 移除列表中某个值的第一个匹配项 |
list2 = [56,'Tom',['Ninda',88,63],56] list2.remove(56) print(list2) list2.remove('Tom') print(list2) |
输出结果: |
['Tom', ['Ninda', 88, 63], 56] [['Ninda', 88, 63], 56] |
list.clear() 删除列表内所有元素 |
list1 = [11,22] list1.clear() print(list1) |
输出结果: |
[] |
使用del语句来删除列表 |
del list1 print(list1) |
输出结果: |
报错:NameError: name 'list1' is not defined |
修改列表中的元素 |
通过下标索引找到元素后赋值 |
list1 = ['physics', 'Lucy', 1997,True,12,25,36] list1[0] = 'math' print(list1) list1[-2] = 2007 print(list1) list1[1:3] = 11,'ly',66 print(list1) |
输出结果: |
['math', 'Lucy', 1997, True, 12, 25, 36] ['math', 'Lucy', 1997, True, 12, 2007, 36] ['math', 11, 'ly', 66, True, 12, 2007, 36] |
in/not in 使用: |
list1 = ['physics', 'Lucy', 1997] for i in list1: print(i) print("-----------------") print(11 not in list1) print(11 in list1) |
输出结果: |
physics Lucy 1997 ----------------- True False |
其他方法: |
len(list) 列表元素个数 |
list1 = ['physics', 'Lucy', 1997,True] print(len(list1)) |
输出结果: |
4 |
list.count(obj) 统计某个元素在列表中出现的次数 |
list.index(obj) 从列表中找出某个值第一个匹配项的索引位置 |
max(list) 返回列表元素最大值 |
min(list) 返回列表元素最小值 |
list1 = ['Tom','Lucy','Tom',1997] print(list1.count('Tom')) print(list1.index('Tom')) print("-------------------") list1 = (200,1997,700,22) print(max(list1)) print(min(list1)) list2 = ('physics','tom','lisa') print(max(list2)) print(min(list2)) |
输出结果: |
2 0 ------------------- 1997 22 tom lisa |
list.reverse() 反向列表中元素 |
list1 = ['Tom','Lucy','Tom',1997] list1.reverse() print(list1) |
输出结果: |
[1997, 'Tom', 'Lucy', 'Tom'] |
list.sort(cmp=None, key=None, reverse=False) 对原列表进行排序 |
list1 = [11,50,20,8,70,36] list1.sort() print(list1) list1.sort(reverse=True) print(list1) |
输出结果: |
[8, 11, 20, 36, 50, 70] [70, 50, 36, 20, 11, 8] |
元组:
Python的元组与列表类似,不同之处在于元组的元素不能修改。
元组使用小括号,列表使用方括号。
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
元组:是有序的
创建元组: |
tup1 = ('physics', 'Lucy', 1997,True) |
tup2 = ('Tom',[11,22,33],89) |
tup3 = (1,) |
访问元组中的元素: |
访问的方式可以是通过下标索引,也可以是以方括号的形式截取字符。 |
tup1 = ('physics', 'Lucy', 1997,True) print(tup1[0]) #取下标为0的元素 print(tup1[1:3]) #[起始位置:结束位置] print(tup1[-1]) #取倒数第一个位置 print(tup1[0:4:2])#[起始位置:结束位置:步长] print(tup1[::-1]) #列表逆序输出 |
输出结果: |
physics ('Lucy', 1997) True ('physics', 1997) (True, 1997, 'Lucy', 'physics') |
使用del语句来删除元组 |
del tup1 print(tup1) |
输出结果: |
报错:NameError: name 'tup1' is not defined |
修改元组中的元素 元组中的元素是不可以被修改的 |
特殊情况:元组中的元素如果是列表,列表中的内容是可以被修改的。 |
tup1 = ('physics', 'Lucy', 1997,True) tup1[1] = 56 会报错: TypeError: 'tuple' object does not support item assignment tup2 = ('Tom',[11,22,33],89) tup2[1][2] = 80 print(tup2) |
输出结果: |
('Tom', [11, 22, 80], 89) |
in/not in 使用: |
tup1 = ('physics', 'Lucy', 1997) for i in tup1: print(i) print("-----------------") print(11 not in tup1) print(11 in tup1) |
输出结果: |
physics Lucy 1997 ----------------- True False |
其他方法: |
len(tuple) 计算元组元素个数。 |
tup1 = ('physics', 'Lucy', 1997,True) print(len(tup1)) |
输出结果: |
4 |
tuple.count(obj) 统计某个元素在元组中出现的次数 |
tuple.index(obj) 从元组中找出某个值第一个匹配项的索引位置 |
max(tuple) 返回元组中元素最大值。 |
min(tuple) 返回元组中元素最小值。 |
tup1 = ('Tom','Lucy','Tom',1997) print(tup1.count('Tom')) print(tup1.index('Tom')) print("-------------------") tup1 = (200,1997,700,22) print(max(tup1)) print(min(tup1)) tup2 = ('physics','tom','lisa') print(max(tup2)) print(min(tup2)) |
输出结果: |
2 0 ------------------- 1997 22 tom lisa |
字典:
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中
键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
字典:是无序的
创建字典: |
dic1 = {'Lucy':85,'Lisa':99,'Mike':52,'Tom':66} |
dic2 = {"a":{"b":1,"c":3},"f":[2,3],"g":(4,5)} |
访问字典中的元素: |
1:使用键找到值 2:使用dict.get('key'),找到值 |
dic1 = {'Lucy':85,'Lisa':99,'Mike':52,'Tom':66} #使用键找到值 print(dic1['Lucy']) #使用dict.get('key'),找到值 print(dic1.get('Mike')) |
输出结果: |
85 52 |
增加列表中的元素:(和修改是一样的操作) |
dict.update(dict2) 把字典dict2的键/值对更新到dict里 |
dic1 = {'Lucy':85,'Lisa':99,'Mike':52,'Tom':66} dic1.update({'N1':1}) print(dic1) |
输出结果: |
{'Lucy': 85, 'Lisa': 99, 'Mike': 52, 'Tom': 66, 'N1': 1} |
和修改操作一样,添加新元素时,就是赋值一个没有的键值即可 |
dic1 = {'Lucy':85,'Lisa':99,'Mike':52,'Tom':66} dic1['N2'] = 30 print(dic1) |
输出结果: |
{'Lucy': 85, 'Lisa': 99, 'Mike': 52, 'Tom': 66, 'N2': 30} |
删除列表中的元素 |
使用del语句来删除字典的元素 |
dic1 = {'Lucy':85,'Lisa':99,'Mike':52,'Tom':66} del dic1['Lucy'] print(dic1) |
输出结果: |
{'Lisa': 99, 'Mike': 52, 'Tom': 66} |
dict.pop(key[,default]) 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。 |
dic1 = {'Lucy':85,'Lisa':99,'Mike':52,'Tom':66} dic1.pop('Mike') print(dic1) #修改键的值: dic2 = {'Tom':50,'Lisa':66} print(dic2) dic2['Li'] = dic2.pop('Lisa') print(dic2) |
输出结果: |
{'Lucy': 85, 'Lisa': 99, 'Tom': 66} {'Tom': 50, 'Lisa': 66} {'Tom': 50, 'Li': 66} |
dict.clear() 删除字典内所有元素 |
dic1 = {'Lucy':85,'Lisa':99,'Mike':52,'Tom':66} dic1.clear() print(dic1) |
输出结果: |
{} |
使用del语句来删除字典 |
del dic1 print(dic1) |
输出结果: |
报错:NameError: name 'dic1' is not defined |
修改字典中的元素 |
1:对已经存在的键直接赋值 2:dict.update(dict2) 把字典dict2的键/值对更新到dict里 |
dic1 = {'Lucy':85,'Lisa':99,'Mike':52,'Tom':66} dic1['Lisa'] = 50 print(dic1) dic1.update({'Lucy':30}) print(dic1) dic1.update({'Lucy':20,'Tom':10,'N':1}) print(dic1) |
输出结果: |
{'Lucy': 85, 'Lisa': 50, 'Mike': 52, 'Tom': 66} {'Lucy': 30, 'Lisa': 50, 'Mike': 52, 'Tom': 66} {'Lucy': 20, 'Lisa': 50, 'Mike': 52, 'Tom': 10, 'N': 1} |
in/not in 使用: |
dic1 = {'Lucy':85,'Lisa':99,'Mike':52,'Tom':66} for k,v in dic1.items(): print(k,v) print("-----------------") print(85 not in dic1) print('Lucy' not in dic1) print('Tom' in dic1) |
输出结果: |
Lucy 85 Lisa 99 Mike 52 Tom 66 ----------------- True False True |
其他方法: |
len(dict) 计算字典元素个数,即键的总数。 |
dic1 = {'Lucy':85,'Lisa':99,'Mike':52,'Tom':66} print(len(dic1)) |
输出结果: |
4 |
dict.items() 以列表返回可遍历的(键, 值) 元组数组 |
dict.keys() 以列表返回一个字典所有的键 |
dict.values() 以列表返回字典中的所有值 |
dic1 = {'Lucy':85,'Lisa':99,'Mike':52,'Tom':66} print(dic1.items()) print(dic1.keys()) print(dic1.values()) |
输出结果: |
dict_items([('Lucy', 85), ('Lisa', 99), ('Mike', 52), ('Tom', 66)]) dict_keys(['Lucy', 'Lisa', 'Mike', 'Tom']) dict_values([85, 99, 52, 66]) |
遍历键、值、键值对方法: |
dic1 = {'Lucy':85,'Lisa':99,'Mike':52,'Tom':66} for k in dic1.keys(): print(k) print("-------------------") for v in dic1.values(): print(v) print("-------------------") for k,v in dic1.items(): print(k,v) |
输出结果: |
Lucy Lisa Mike Tom ------------------- 85 99 52 66 ------------------- Lucy 85 Lisa 99 Mike 52 Tom 66 |
集合:集合是无序不重复的元素序列
无序:原有的(定义时的)顺序会发生改变。
集合:是无序的
创建集合: |
set1 = {34,11,89,93,28} |
set2 = {'Li','Tom',33,90} |
增加列表中的元素: |
set.update(set) set -- 必需,可以是元素或集合 给集合添加元素 |
set1 = {'Luna','Tom',50,99} set1.update({26,27,26,99,99}) print(set1) set2 = {'Luna','Tom',50,99,'Jim'} set3 = {33,90,'Luna'} set2.update(set3) print(set2) |
输出结果: |
{'Luna', 99, 50, 26, 'Tom', 27} {33, 99, 90, 'Luna', 50, 'Tom', 'Jim'} |
set.add(elmnt) 为集合添加元素 elmnt -- 必需,要添加的元素。 |
set1 = {'Luna','Tom',99,50,99} set1.add('Li') print(set1) |
输出结果: |
{99, 'Luna', 50, 'Tom', 'Li'} |
set.pop() 随机移除一个元素 |
set1 = {'Luna','Tom',50,99,'Jim'} set1.pop() print(set1) |
输出结果: |
{'Luna', 50, 'Tom', 'Jim'} |
set.remove(item) item -- 要移除的元素 |
set1 = {'Luna','Tom',50,99} set1.remove(50) print(set1) |
输出结果: |
{'Luna', 99, 'Tom'} |
set.clear() 删除集合内所有元素 |
set1 = {'Luna','Tom',50,99,'Jim'} set1.clear() print(set1) |
输出结果: |
set() |
使用del语句来删除集合 |
set1 = {'Luna','Tom',50,99,'Jim'} del set1 print(set1) |
输出结果: |
报错:NameError: name 'set1' is not defined |
in/not in 使用: |
set1 = {34,11,89,93} for i in set1: print(i) print("-----------------") print(11 not in set1) print(11 in set1) |
输出结果: |
89 34 11 93 ----------------- False True |
其他方法: |
len(set) 计算集合元素个数。 |
set1 = {'Luna',50,'Tom',50,99,99} print(set1) print(len(set1)) |
输出结果: |
{'Luna', 99, 50, 'Tom'} 4 |
如果想更清晰的看到列表、元组、字典、集合的区别和相似点,可以看我另一篇小文:”一张表看明白python中列表、元组、字典、集合的增删改查方法“ (https://blog.51cto.com/u_5839280/3768192)