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'), '你好']
原文地址:https://www.cnblogs.com/lucky1212/p/13648197.html