Python之元组和集合
元组
1.元组的表示方法:用一对圆括号括起来的数据,为一组元组数据 (),不带小括号的可以表示一个元组数,如下:
#元组的两种表示方法 tup=1,2,3 tup1=(1,2,3) print(type(tup)) print(type(tup1)) 输出结果: <class 'tuple'> <class 'tuple'>
2.元组与列表一样,也是一种序列,但是元组内的元素是不可修改的
#修改一个列表元素 tup1=[1,2,3] tup1[1]='nihao' print(tup1) 输出结果: [1, 'nihao', 3] #修改一个元组元素 tup1=(1,2,3) tup1[1]='nihao' print(tup1) 输出结果: TypeError: 'tuple' object does not support item assignment(元组不能修改元素)
3.如果元组中只有一个元素,需要在元素后面添加一个逗号,如果不添加逗号,则就不是一个元组,添加的数据是什么类型返回结果就是什么类型的数据
#元组内为一个元素时,加逗号和不加逗号的区别 tup=(1) tup1=(1,) print(type(tup)) print(type(tup1)) 输出结果: <class 'int'> <class 'tuple'>
4.元组是有序的,可以通过索引操作取值
tup=(1,23,45,'nihao',(1,2),{'name':"蓝天"},[3,4,5]) print(len(tup)) print(tup[5]) print(tup[3]) print(tup[2]) 输出结果: 7 {'name': '蓝天'} nihao 45
5.元组是不可修改的序列,但是可以利用切片对元组内的数据进行更新
#向元组内添加一组数据,使用切片实现元组连接 tup=(1,23,45,'nihao',(1,2),{'name':"蓝天"},[3,4,5]) tup1=("小猴子","大灰狼") print(tup[:4]+tup1+tup[4:]) 输出结果: (1, 23, 45, 'nihao', '小猴子', '大灰狼', (1, 2), {'name': '蓝天'}, [3, 4, 5])
6.删除元组数据(只能使用del() 进行删除)
tup=(1,23,45,'nihao',(1,2),{'name':"蓝天"},[3,4,5]) print(tup) del(tup) #删除元组,是直接删除,而不是清空 print(tup) 输出结果: (1, 23, 45, 'nihao', (1, 2), {'name': '蓝天'}, [3, 4, 5]) NameError: name 'tup' is not defined (已被删除,所以该元组不存在)
7.元组的拆包和解包(变量必须与元组内的元素个数一一对应,元组内有多少个元素,就有多少个变量去一一接收,否则会报错)
#元组的拆包和解包,使用方法如下: tup0,tup1,tup2,tup3,tup4,tup5,tup6=(1,23,45,'nihao',(1,2),{'name':"蓝天"},[3,4,5]) print(tup5) 输出结果: {'name': '蓝天'}
8.元组的相关操作符
- 重复操作符 * tuple*3 将元组内的元素重复输出多少次
- 逻辑操作符号 and or
- 成员关系操作符 in not in
- 拼接操作符+ (拼接操作符两边的元素类型要一致,只能拼接元组类型,其他类型会报错)
- 关系操作符 (>,<,>=,<=,==)
9.什么时候用元组
- .在信息不能进行修改的情况下,用元组
- 元组的性能要强于列表(测试的时候感受不到,基本上用列表就够 了)
集合
1.集合的表示方法:{ } 使用花括号包裹起来的数据为集合
例如:{1,2,3,4,'python','你好'}
2.集合和字典的区别:集合没有key,而字典有
3.集合是无序的可变的,所以不能使用索引进行取值
4.集合的主要作用:去重 (set会将重复的元组覆盖掉,从而达到去重的效果) ❥(^_-) 面试中,可能会问到
#集合可以存储元组,但是不能存储字典和列表 my_set={"python",1,23,3,3,3,56,7,'python','你好',("name","xiaoha")} print(my_set) print(len(my_set)) 输出结果: {1, 3, 'python', 7, '你好', ('name', 'xiaoha'), 23, 56} 8 #集合可以对列表中的重复元素进行去重 my_list1=["python",1,23,3,3,3,56,7,'python','你好',("name","xiaoha")] print(my_list1) print(set(my_list1)) print(list(set(my_list1))) #将去重后的集合再转换为列表输出,就达到列表去重的效果 输出结果: ['python', 1, 23, 3, 3, 3, 56, 7, 'python', '你好', ('name', 'xiaoha')] {1, '你好', 3, 7, 'python', ('name', 'xiaoha'), 23, 56} ['python', 1, 3, 7, 23, 56, ('name', 'xiaoha'), '你好']