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)