Python学习第六天

什么是字典

内置的数据结构,以键值对的方式存储数据,是一个无序的可变序列,用{ }表示。
key不可以重复,value可以重复

scores = {"张三": 100, "李四": 98, "王五": 65}
print(scores)
print(type(scores))

####
{'张三': 100, '李四': 98, '王五': 65}
<class 'dict'>

创建字典

  1. 使用花括号创建
    例子跟上面一样
  2. 使用内置函数dict()
    参数使用key=value的形式
s = dict(name='张三', age=20, key="value")
print(s)

####
{'name': '张三', 'age': 20, 'key': 'value'}

字典元素的获取

  1. 使用[]获取
    如果不存在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: '李明'
  1. 使用get()方法
    如果不存在key,会返回None
print(s.get("张三"))
print(s.get("李华"))

####
100
None

字典的增删改

  1. 判断字典是否存在key
    使用innot in
s = {"张三": 100, "李四": 98, "王五": 76}
print("张三" in s)
print("李华" not in s)

####
True
True
  1. 删除key
    del 字典[key]
    清空字典字典.clear()
s = {"张三": 100, "李四": 98, "王五": 76}
print(s)
del s["张三"]
print(s)

####
{'张三': 100, '李四': 98, '王五': 76}
{'李四': 98, '王五': 76}
  1. 添加key:value
    字典[key] = value
s = {"张三": 100, "李四": 98, "王五": 76}
print(s)
s["李华"] = 99
print(s)

####
{'张三': 100, '李四': 98, '王五': 76}
{'张三': 100, '李四': 98, '王五': 76, '李华': 99}

获取字典视图

  1. 获取所有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])
  1. 获取所有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}
posted @ 2021-01-31 16:03  sxhyyq  阅读(53)  评论(0编辑  收藏  举报