- 字典
- 元组
#*************************************2022/10/19
#*************************************字典的常用操作
# keys() 获取所有的key value()获取所欲有的value items()获取所有的 key value对
scores={'name': '印朝', 'age':23}
keys=scores.keys()
print(keys)
print(type(keys)) #类型为 dict_keys
print(list(keys)) #用list()函数转换为列表
keys=scores.values()
print(keys)
item1=scores.items()
print(item1)
print(list(item1)) #转换之后的列表是由元组组成的
#*******************************字典元素的遍历
for item1 in scores : #遍历了字典中的key ,item1依次遍历scores中的key
print(item1)
print(scores[item1], scores.get(item1)) #通过两种方式遍历所有value
#********************************重复问题
d={'name': '印朝', 'name':'hahaha'}
print(d) #重复key无效,后者会覆盖掉前者
#字典中的key必须是不可变对象, str int 是不可变对象 ,list是可变对象
#list1=[1,2,3]
#d={list1:5} 错误的
#*********************字典生成式、
#使用内置函数zip() 用于将可迭代对象元素打包成一个元组,饭后返回由这些元组组成的列表
items=['name', 'age', 'others']
date=['yinzhao', 23, 'cool boy' , 33, 44]
d={items:date for items,date in zip(items,date)} #{'name': 'yinzhao', 'age': 23, 'others': 'cool boy'}
print(d) #结果以短的那个为准
#******************************元组和集合*************************8888
#元组被设计为不可变序列 :在多任务环境下,同时操作对象时不需要加锁; 因此在程序中应尽量使用不可变序列
#加锁:可变对象,在被多用户操作时需要在第一个用户使用时加锁,防止多用户使用乱套了
#元组中存储的是对象的引用a.如果元组中对象本身是不可变对象,则不能在引用其他对象 b.如果是可变对象,则可变对象的引用不允许改变,但数据可以改变
#**********************************************************************************************
#*********************************可变序列,不可变序列 ,元组
#不可变序列:其中的元素不能进行增删改
t=('name', 'age', 22) #元组创建方式,与列表唯一区别是小括号
t1=tuple(('name','age',22) ) #使用tuple函数
t2=('name', ) #只有一个元素, ‘,’ 不能够省略
t3=()
t4=tuple() #创建空元组
#元组中存储的是对象的引用a.如果元组中对象本身是不可变对象,则不能在引用其他对象 b.如果是可变对象,则可变对象的引用不允许改变,但数据可以改变
t5=(10,[20,30], 9) #其中10 ,9 是int类型,不可变对象,而[20,30]是可变对象,
#t[0]=100 #会报错,不可变对象不可以更改
t5[1].append(40) #不可以更改,但是可以添加元素,列表的内存地址不变,
print(t5)
#**********************************元组的遍历
for item in t :
print(item) #item是元组中的元素,这里依次输出元组中的元素
#**********************************集合***********************************************
#和列表 字典一样也是可变类型的序列 ,集合是没有value的字典
#集合和字典一样,也会用hash()来计算元素存储位置,不是按存入顺序按顺序排列的
#*********************************************************************8***********
#集合的创建
s={2,3,4,5,6,7,8,7,8}
print(s) #后两个7 8不会出现,集合和字典一样不允许重复
s1=set(range(6)) #利用set()函数来创建
s2=set([1,2,3,4,5,5,6]) #将list类型转换为集合了,并且去掉了重复的元素
s3=set((1,2,3,4,5,66,77,42))
print(s3) #{1, 2, 3, 4, 5, 66, 42, 77} 可以看到顺序改变了,可知集合是无序的