Python学习第六天
什么是字典
内置的数据结构,以键值对的方式存储数据,是一个无序的可变序列,用{ }
表示。
key不可以重复,value可以重复
scores = {"张三": 100, "李四": 98, "王五": 65}
print(scores)
print(type(scores))
####
{'张三': 100, '李四': 98, '王五': 65}
<class 'dict'>
创建字典
- 使用花括号创建
例子跟上面一样 - 使用内置函数
dict()
参数使用key=value
的形式
s = dict(name='张三', age=20, key="value")
print(s)
####
{'name': '张三', 'age': 20, 'key': 'value'}
字典元素的获取
- 使用[]获取
如果不存在key,则会抛出异常
s = {"张三": 100, "李四": 98, "王五": 76}
print(s["张三"])
print(s["李明"])
####
100
Traceback (most recent call last):
File "/Users/xieyuquan/PycharmProjects/LearnPython/main.py", line 3, in <module>
print(s["李明"])
KeyError: '李明'
- 使用
get()
方法
如果不存在key,会返回None
print(s.get("张三"))
print(s.get("李华"))
####
100
None
字典的增删改
- 判断字典是否存在key
使用in
,not in
s = {"张三": 100, "李四": 98, "王五": 76}
print("张三" in s)
print("李华" not in s)
####
True
True
- 删除key
del 字典[key]
清空字典字典.clear()
s = {"张三": 100, "李四": 98, "王五": 76}
print(s)
del s["张三"]
print(s)
####
{'张三': 100, '李四': 98, '王五': 76}
{'李四': 98, '王五': 76}
- 添加key:value
字典[key] = value
s = {"张三": 100, "李四": 98, "王五": 76}
print(s)
s["李华"] = 99
print(s)
####
{'张三': 100, '李四': 98, '王五': 76}
{'张三': 100, '李四': 98, '王五': 76, '李华': 99}
获取字典视图
- 获取所有key
使用keys()
方法
s = {"张三": 100, "李四": 98, "王五": 76}
print(s.keys())
####
dict_keys(['张三', '李四', '王五'])
可以使用list()
函数把获取到的key转换成列表,以下都可以。
2. 获取所有value
使用values()
方法
s = {"张三": 100, "李四": 98, "王五": 76}
print(s.values())
####
dict_values([100, 98, 76])
- 获取所有key:value
使用items()
方法
s = {"张三": 100, "李四": 98, "王五": 76}
print(s.items())
####
dict_items([('张三', 100), ('李四', 98), ('王五', 76)])
字典元素的遍历
遍历的是key
s = {"张三": 100, "李四": 98, "王五": 76}
for items in s:
print(items + ":" + str(s[items]))
####
张三:100
李四:98
王五:76
字典生成式
keys = ["shy", "xyq", "zs", "ls"]
values = [100, 98, 93]
s = {key: value for key, value in zip(keys, values)}
print(s)
####
{'shy': 100, 'xyq': 98, 'zs': 93}