首页 > 代码库 > 07-列表/元组/集合

07-列表/元组/集合

列表
使用[]或list()创建,元素可变
如:
list01 = [‘user‘, ‘123‘, ‘a1‘, ‘‘]
list02 = list([‘user‘, ‘123‘, ‘a1‘, ‘‘])
print(list01)
print(list01[0])
print(list01[0][3])
list01[0] = ‘That‘
print(list02)
运行结果:
[‘user‘, ‘123‘, ‘a1‘, ‘‘]
user
r
[‘That‘, ‘123‘, ‘a1‘, ‘‘]

列表可以进行的操作:
-索引
list01[0]
list01 = [‘user‘, ‘123‘, ‘a1‘, ‘‘]
print(list01[0])
print(list01[1])
运行结果:
user
123

-列表元素切片用来分片显示
list01[0:1]
list01 = [‘user‘, ‘123‘, ‘a1‘, ‘‘]
print(list01[0:2])
print(list01[0:1])
运行结果:
[‘user‘]
[‘user‘, ‘123‘]

-追加元素到列表后面
list01.append(‘xxoo‘)
list01 = [‘user‘, ‘123‘, ‘a1‘, ‘‘]
list01.append(‘xxoo‘)
print(list01)
运行结果:
[‘user‘, ‘123‘, ‘a1‘, ‘‘, ‘xxoo‘]
[ps:注意在追加一个元素到列表中的时候,这个动作不能赋值给变量,赋值的话,此变量为none]
例如:
list01 = [‘user‘, ‘123‘, ‘a1‘, ‘‘]
v = list01.append(‘xxoo‘)
print(v)
运行结果:
None


-列表元素插入新值
list01.insert(1, ‘xxoo‘)
list01 = [‘user‘, ‘123‘, ‘a1‘, ‘‘]
list01.insert(1, ‘xxoo‘)
print(list01)
运行结果:
[‘user‘, ‘xxoo‘, ‘123‘, ‘a1‘, ‘‘]
[ps:数字1表示,要插入的值作为列表第几个元素]


-列表元素更改
list01[0] = ‘fly‘
list01 = [‘user‘, ‘123‘, ‘a1‘, ‘‘]
list01[0] = ‘fly‘
print(list01)
运行结果:
[‘fly‘, ‘123‘, ‘a1‘, ‘‘]

-删除
list01.remove[‘val‘]
del list01[key]
list01 = [‘user‘, ‘123‘, ‘a1‘, ‘‘]
list01.remove(‘123‘)

del list01[2]
print(list01)
运行结果:
[‘user‘, ‘a1‘, ‘‘]

[‘user‘, ‘123‘, ‘‘]

-删除列表中的某个元素,并可以把删除的元素赋值给一个变量
.pop(key)
list01 = [‘张小凡‘, ‘小白‘, ‘碧瑶‘, ‘陆雪琪‘, ‘张小凡‘]
v = list01.pop(2)
print(list01)
print(v)
运行结果:
[‘张小凡‘, ‘小白‘, ‘陆雪琪‘, ‘张小凡‘]
碧瑶


-清空所有元素
.clear()
list01 = [‘张小凡‘, ‘小白‘, ‘碧瑶‘, ‘陆雪琪‘]
list01.clear()
print(list01)
运行结果:
[]

-浅拷贝
.copy()
list01 = [‘张小凡‘, ‘小白‘, ‘碧瑶‘, ‘陆雪琪‘]
v = list01.copy()
print(v)
运行结果:
[‘张小凡‘, ‘小白‘, ‘碧瑶‘, ‘陆雪琪‘]

-深拷贝
待更新...


-长度
len()
list01 = [‘user‘, ‘123‘, ‘a1‘, ‘‘]
v = len(list01)
print(v)
运行结果:
4

-计算某个元素在列表中出现了几次
.count()
list01 = [‘张小凡‘, ‘小白‘, ‘碧瑶‘, ‘陆雪琪‘, ‘张小凡‘]
v = list01.count(‘张小凡‘)
print(v)
运行结果:
2

-判断某个值是否包含在一个列表中
... in ...:
list01 = [‘user‘, ‘123‘, ‘a1‘, ‘‘]
if ‘123‘ in list01:
print(‘yes‘)
else:
print(‘no‘)
运行结果:
yes

-批量增加元素
.extend()
list01 = [‘张小凡‘, ‘小白‘, ‘碧瑶‘, ‘陆雪琪‘, ‘张小凡‘]
list01.extend([‘林惊羽‘, ‘金瓶儿‘, ])
print(list01)
运行结果:
[‘张小凡‘, ‘小白‘, ‘碧瑶‘, ‘陆雪琪‘, ‘张小凡‘, ‘林惊羽‘, ‘金瓶儿‘]

-元素反转,倒序排列
.reverse()
list01 = [‘张小凡‘, ‘小白‘, ‘碧瑶‘, ‘陆雪琪‘]
list01.reverse()
print(list01)
运行结果:
[‘陆雪琪‘, ‘碧瑶‘, ‘小白‘, ‘张小凡‘]

-对列表内的元素进行比较排序(默认从小到大)
.sort()
.sort(reverse=True) #从大到小
num = [1, 10, 23, 345, 32345, 1911991]
num.sort()
print(num)
num.sort(reverse=True)
print(num)
运行结果:
[1, 10, 23, 345, 32345, 1911991]
[1911991, 32345, 345, 23, 10, 1]

##########################################################

元组
使用()创建,元素不可变
约定:创建一个元组的时候,要在最后一个元素的后面再加上一个逗号‘,‘;
如:
list02 = (‘user‘, ‘123‘, ‘a1‘, ‘‘)
print(list02)
list02[0] = ‘That‘
print(list02)
结果:
(‘user‘, ‘123‘, ‘a1‘, ‘‘)
(‘user‘, ‘123‘, ‘a1‘, ‘‘)

元组可进行的操作:
list02 = (‘user‘, ‘123‘, ‘a1‘, ‘‘, )

索引
list02[0]

切片
list02[0:2]

循环
for i in list02:
print(i)

长度
v = len(list02)

包含
if ‘123‘ in list02:
print(‘ok‘)
else:
print(‘no‘)

需要注意的是:
元组的子元素是不可修改的,但是子元素如果是列表或字典等集合类型,那么该子元素的子元素是可以被修改的;


集合
set()集合使用{val1, val2, val3}创建,不可重复的列表,可变类型

特点:
-不支持索引取值
-支持for循环
-不能嵌套列表,集合
-可嵌套元组

-添加元素
.add()

-清空集合所有元素
.clear()

-元素移除
.discard(‘val‘)

-是否有交集
.isdisjoint()

-是否是被比较者的子集
.issubset()

-是否是被比较者的父集
issuperset()

-移除一个值并获取到移除的值赋值给一个变量
.pop()

-移除一个值
.remove()

-比较不同之处,注意比较的双方位置
.difference()
s1 = {‘a‘, ‘b‘, ‘c‘, ‘111‘}
s2 = {‘a‘, ‘b‘, ‘c‘, ‘222‘}
v1 = s1.difference(s2)
v2 = s2.difference(s1)
print(v1)
print(v2)
运行结果:
{‘111‘}
{‘222‘}

-将比较结果重新更新赋值给比较者
.difference_update()
s1 = {‘a‘, ‘b‘, ‘c‘, ‘111‘}
s2 = {‘a‘, ‘b‘, ‘c‘, ‘222‘}
s1.difference_update(s2)
print(s1)
运行结果:
{‘111‘}


-比较不同之处,并将所有不同的元素同时赋值给一个变量
.symmetric_difference()
s1 = {‘a‘, ‘b‘, ‘c‘, ‘111‘}
s2 = {‘a‘, ‘b‘, ‘c‘, ‘222‘}
v = s1.symmetric_difference(s2)
print(v)
运行结果:
{‘222‘, ‘111‘}

-将比较结果重新更新赋值给比较者
.symmetric_difference_update()

-取比较对象的交集
.intersection()
s1 = {‘a‘, ‘b‘, ‘c‘, ‘111‘}
s2 = {‘a‘, ‘b‘, ‘c‘, ‘222‘}
v = s1.intersection(s2)
print(v)
运行结果:
{‘b‘, ‘c‘, ‘a‘}

-将比较结果重新更新赋值给比较者
.intersection_update()

-取比较对象的并集
.union()
s1 = {‘a‘, ‘b‘, ‘c‘, ‘111‘}
s2 = {‘a‘, ‘b‘, ‘c‘, ‘222‘}
v = s1.union(s2)
print(v)
运行结果:
{‘a‘, ‘b‘, ‘c‘, ‘222‘, ‘111‘}

-将比较结果重新更新赋值给比较者
.union_update()

-批量更新
.update(‘val1‘, ‘val2‘, ‘val3‘, ...)
s1 = {‘a‘, ‘b‘, ‘c‘, ‘d‘}
s1.update({‘111‘, ‘222‘, ‘333‘})
print(s1)
运行结果:
{‘d‘, ‘333‘, ‘c‘, ‘222‘, ‘a‘, ‘111‘, ‘b‘}

07-列表/元组/集合