Python编程学习【6】1.字典 2.元组

  1. 字典
  2. 元组
#*************************************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}  可以看到顺序改变了,可知集合是无序的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

月早十

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值