字典、集合与序列

1、字典

🐱‍🐉🐱‍🐉🐱‍🐉在某些情况下,字典比列表更加适用:
#1、表示一个游戏棋盘的状态,每个键都是由坐标值组成的元组
#2、存储文件修改时间,用文件名作为键;
#3、数字电话\地址薄

😘😘😘😘字典键的特性:键必须不可变,所以可以用数字,字符串或元组充当,所以用列表就不行
💖💖💖💖***列表不允许对不存在的索引赋值,但字典则允许直接对不存在的 key 赋值。***
#与列表的不同之处

#与列表的不同之处
*#键类型:字典的键类型不一定为整形数据,键可以是任意不可变类型,比如浮点类型(实型)、字符串或者元租
*#自动添加:即使键起初在字典中并不存在,也可以为它赋值,字典就会建立新的项。而(在不使用append方法或者其他类似操作的情况下)不能将值关联到列表范围之外的索引上
#表达式 key in dictionary,查找的是键,而不是值。表达式 value in list,用来查找值,而不是索引。
#在字典中检查键的成员资格比在列表中检查值的成员资格更高,数据结构规模越大,俩者的效率差距越明显

2. 练习题

有一个字典,保存的是学生各个编程语言的成绩,内容如下
data = {
‘python’: {‘上学期’: ‘90’, ‘下学期’: ‘95’},
‘c++’: [‘95’, ‘96’, ‘97’],
‘java’: [{‘月考’:‘90’, ‘期中考试’: ‘94’, ‘期末考试’: ‘98’}]
}
各门课程的考试成绩存储方式并不相同,有的用字典,有的用列表,但是分数都是字符串类型,请实现函
数 transfer_score(score_dict) ,将分数修改成int类型

 data = {
        'python': {'上学期': '90', '下学期': '95'},
        'c++': ['95', '96', '97'],
        'java': [{'月考':'90', '期中考试': '94', '期末考试': '98'}]
        }
dic1,s,dic2=list(data.values())
print(dic1,s,dic2)
print((list(map(int,dic1.values()))))
print((list(map(int,s))))
for i in dic2:
    for key in i:
        i[key] = int(i[key])
        print(i[key])

2、集合

💖💖💖💖集合是一个拥有确定(唯一)的、不变的的元素,且元素无序的可变的数据组织形式。
💋💋💋💋 集合存储的元素是无序且不重复的,因此不能像列表、元组一样通过索引访问集合存储的元素。对集合元素的访问可以使用成员操作符in或not in来判断某元素是否在集合中。

😎😎😎**Python语言的集合类型同数学集合类型一样,也有求集合的并集、交集、差集、对称差集运算。
集合的并集运算是把两个集合合并成一个新的集合,集合合并后重复的成员被删除。在Python语言中,使用符号‘|’或union函数可以执行集合的合并运算。
集合的交集运算是求两个集合的共有成员,两个集合执行交集运算后返回新的集合,该集合中的每个元素同时是两个集合中的成员。在Python语言中,使用符号‘&’或intersection函数可以执行集合的交集运算。
集合的差集运算是求A集合与B集合之间的差值,A集合与B集合执行差集运算后返回新的集合,该集合的元素,只属于集合A,而不属于集合B。在Python语言中,使用符号‘-’或difference函数可以执行集合的差集运算。
集合的对称差集运算是集合的异或运算,A集合与B集合执行对称差集运算后返回新的集合,该集合中的元素只能是属于A集合或B集合的成员,不能同时属于A和B集合。在Python语言中,使用符号‘^’或symmetric_difference函数可以执行集合的对称差集运算。**😍😍😍

2 练习

列表[‘A’, ‘B’, ‘A’, ‘B’]去重。

 lis = ['A', 'B', 'A', 'B']set集合对列表去重,是最常用的去重方法
lis_unique = list(set(lis))
print(lis_unique)
['B', 'A']

3、序列

可变序列:
list、bytearray、array.array、collections.deque 和 memoryview。
不可变序列:
tuple、str 和 bytes。
针对序列的内置函数:

1、zip():返回几个列表压缩成的新列表;
2、注意:当两个列表的元素个数不相等时,舍弃元素个数多的那个列表的多余部分
3、eunmerate():返回枚举对象,其中每个元素为包含下标和值的元组,对于元组、字符串同样适用

2 练习

将[‘x’,‘y’,‘z’] 和 [1,2,3] 转成 [(‘x’,1),(‘y’,2),(‘z’,3)] 的形式。

a=['x','y','z']
b=[1,2,3]
abzip=list(zip(a,b))
print(abzip)
[('x', 1), ('y', 2), ('z', 3)]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值