Pyton中的字典和集合
程序员文章站
2022-04-16 16:18:49
一。字典1.什么是字典问题:用列表同时保存多个意义不同的数据的时候,代码的可读性很低。解决;用字典保存多个意义不同的数据stu = ['小明',20,'男','13535535', '17771837', 80, 170, 80]2.元素的增删改查1)查 - 获取字典的值a .获取单个值1.字典[key] - 获取字典中指定key对应的值(如果key不存在会报错)2.字典.get(key) - 获取字典中指定key对应的值(如果key不存在不会报错,返回None)3.字...
一。字典
1.什么是字典
- 问题:用列表同时保存多个意义不同的数据的时候,代码的可读性很低。
- 解决;用字典保存多个意义不同的数据
stu = ['小明',20,'男','13535535', '17771837', 80, 170, 80]
- 字典是容器型数据类型的数据,将{}作为容器的标志,里面多个元素用逗号隔开(其中元素必须是键值对)
: {键1:值1, 键2:值2, 键3:值3, …} - 字典是可变(支持增删改);字典是无序(不支持下标操作)
- 字典的元素:键是不可变的,唯一的,用来区分不同数据的;值可以是任何类型的数据,并且可以重复
2.元素的增删改查
-
1)查 - 获取字典的值
-
a .获取单个值
-
1.字典[key] - 获取字典中指定key对应的值(如果key不存在会报错)
2.字典.get(key) - 获取字典中指定key对应的值(如果key不存在不会报错,返回None)
3.字典.get(key,默认值)- 获取字典中指定key对应的值(如果key不存在不会报错,返回默认值) -
b.遍历字典
方式一:(推荐使用)
for 变量 in 字典:
循环体(变量在循环体中得到的是字典的key)
方法二:
for 变量1,变量2 in 字典.items():
循环体(循环体中变量1取到的所有的键,变量2取到的是所有键对应的值)
for x in movie1:
print(x, movie1[x])
print(movie1.items())
for x, y in movie1.items():
print(x, y)
- 2 ) 增/改 - 添加键值对/修改键值对的值
- 字典[key] = 值 - 当key不存在就是添加键值对;当key存在的时候就是修改key对应的值
subject = {
'name': 'python',
'score': 3,
'class_hour': 20,
'direction' : ['数据分析','web后端', '爬虫','自动测试','自动化运维' ]
}
print(subject)
subject['teacher'] = '毓婷'
print(subject)
subject['score'] = 4
print(subject)
- 3)删
del 字典[key] - 删除字典指定key对应的键值对
字典.pop(key) - 取出字典中指定key对应的值
del subject['class_hour']
print(subject)
del_item = subject.pop('direction')
print(subject)
print(del_item)
3.字典的应用
4.字典相关的操作和方法。
操作
- 1)字典不支持加法,乘法和比较大小的运算。
- 2)判断是否相等
- == 判断两个数据是否相等。
print({'a': 10, 'b': 20} == {'b': 20, 'a': 10}) # True
- is - 判断两个数据的地址是否相等
a = {'a': 10}
b ={'a': 10}
c = a
print(a == b) # True
print(a is b) # False
print(a is c) # True
- 3)in 和 not in
- key in 字典 - 判断字典中是否有指定的key
dict1 ={'a': 10, 'b': 20, 'c': 30}
print(10 in dict1) # False
print('b' in dict1) # True
- 4)相关函数:len、dict
- len(字典) - 获取字典中键值对的个数
dict1 ={'a': 10, 'b': 20, 'c': 30}
print(len(dict1)) # 3
- dict(数据) - 将其他数据转换成字典(数据的要求:1.序列 2.序列中的元素还是序列, 3.内部的序列有且只有两个元素,第一个元素不可变。)
list1 = ['ab', (10, 20), ['name', '张三']]
print(dict(list1)) # {'a': 'b' , 10 : 20, 'name :'张三’}
- 5)将字典转换成其他数据
- 将字典转换成列表/元组 - 将字典的key作为列表/元组的元素
stu = {'name': '小明', 'age': 18, 'score': 100}
print(list(stu)) # ['name' ,'age' ,'score']
print(tuple(stu)) # ('name ,'age' ,'score')
- 2)将字典转换成字符串
print(str(stu))
- 3)将字典转成布尔
print(bool({})) # False
print(bool(stu)) # True
相关方法
- 1)字典.clear() - 清空
stu = {'name': '小明', 'age': 18, 'score': 100}
stu.clear()
print(stu) # {}
- 2)字典.copy() - 复制,和前面列表切片一样的效果,
- 3)dict.fromkeys(序列,默认值=None) -
:创建一个新的字典,序列中所有的元素会作为新字典的key,默认值是所有key对应的值。
new_dict = dict.fromkeys('abc')
print(new_dict) # {'a': None, 'b': None, 'c': None}
new_dict = dict.fromkeys(['name', 'age', 'sex'], 0)
print(new_dict) # {'name': 0, 'age': 0, 'sex': 0}
- 4)字典.items()、字典.keys()、字典.values()
stu = {'name': '小明', 'age': 18, 'score': 100}
print(stu.items()) # dict_items([('name', '小明'), ('age', 18), ('score', 100)])
print(stu.keys()) # dict_keys(['name', 'age', 'score'])
print(stu.values()) # dict_values(['小明', 18, 100])
- 5)字典.setdefault(key, value) - 在字典中添加键值对(单纯的添加键值对,不会修改)
stu = {'name': '小明', 'age': 18, 'score': 100}
stu.setdefault('weight', 50)
print(stu) # {'name': '小明', 'age': 18, 'score': 100,
'weight': 50}
stu.setdefault('name', '小花')
print(stu) # {'name': '小明', 'age': 18, 'score': 100,
'weight': 50}
- 6)字典1.update(字典2) - 将字典2中所有的键值对全部添加到字典1中
stu.update({'a': 10, 'b': 20})
print(stu) # {'name': '小明', 'age': 18, 'score': 100,
'weight': 50, 'a': 10, 'b': 20}
本文地址:https://blog.csdn.net/xinxing66/article/details/107642941
上一篇: 自媒体艺术:重视情怀的力量