【李刚-21天通关Python-08】之 字典

【李刚-21天通关Python-08】之 字典

一、字典的概念
1、字典用于保存具有映射关系的数据,字典相当于保存了两组数据,其中一组数据被称为key,另一组数据可通过key来访问,被称为value
2、字典中key和value的关系如下,且key不允许重复
【李刚-21天通关Python-08】之 字典_第1张图片

二、创建字典
1、花括号法:花括号应包含多组key-value对,key与value之间用英文冒号隔开,多组key-value对之间用英文逗号隔开

scores = {'语文': 80, '数学': 100, '英语': 90}
print(scores)  # {'语文': 80, '数学': 100, '英语': 90}

2、dict构造器:可以传入多个列表或元组参数作为key-value对,也可为dict指定关键字参数创建字典,此时字典的key不允许用表达式

scores = dict([('语文', 80), ('数学', 100), ('英语', 90)])
print(scores)  # {'语文': 80, '数学': 100, '英语': 90}
scores = dict('语文' = 80, '数学' = 100, '英语' = 90)
print(scores)  # {'语文': 80, '数学': 100, '英语': 90}

字典的key是不可变的,因此列表不能作为字典的key

三、通过key访问value

scores = dict('语文' = 80, '数学' = 100, '英语' = 90)
print(scores['语文'])  # 80

四、修改key-value对

scores = dict('语文' = 80, '数学' = 100, '英语' = 90)

# 添加key-value对:对不存在的key赋值
score['生物'] = 91
print(scores)  # {'语文': 80, '数学': 100, '英语': 90, '生物': 91}

# 替换key-value对:对原有的key赋值
score['数学'] = 95
print(scores)  # {'语文': 80, '数学': 95, '英语': 90, '生物': 91}

# 删除key-value对:del 方法
del scores['数学']
print(scores)  # {'语文': 80, '英语': 90, '生物': 91}

五、in 运算符
使用in、not in可判断dict是否包含指定的key

scores = dict('语文' = 80, '数学' = 100, '英语' = 90)
print('数学' in scores)  # True
print('生物' in scores)  # False

六、字典常用方法

1、调用 dir(dict) 可查看字典的所有方法
可通过快捷键 windows+R 并输入 cmd 进入命令提示符
输入 python 并回车 -> 输入 dir(dict) 并回车
【李刚-21天通关Python-08】之 字典_第2张图片

  • clear() :用于清空字典中所有的key-value对
  • get() :根据key来获取value
  • update() :使用一个字典所包含的key-value对来更新已有的字典
  • items() :获取字典中所有key-value对
  • keys() :获取字典中所有key
  • values() :获取字典中所有value
scores = {'语文': 80, '数学': 100, '英语': 90}
scores.update({'语文': 89, '生物': 99})
print(scores)  # {'语文': 80, '数学': 100, '英语': 90, '生物': 99}
scores = dict('语文' = 80, '数学' = 100, '英语' = 90)

for key in scores.keys():
    print(key)  # 语文 数学 英语

for value in scores.values():
    print(value)  # 80 100 90

for key, value in scores.items():
    print(key, value)  # 语文 80 数学 100 英语 90
  • pop() :用于获取并删除指定key对应的value
  • popitem() :用于随机地弹出字典中的一个key-value对
  • setdefault() :根据key来获取对应value的值,并为不存在的值设置默认值
  • fromkeys() :使用给定的多个key创建字典,这些key对应的value默认都是None,也可以额外传入一个参数作为默认的value
scores = dict('语文' = 80, '数学' = 100, '英语' = 90)
print(scores.setdefault('语文', 60))  # 60
print(scores.setdefault('生物', 80))  # 80
print(scores)  # {'语文': 60, '数学': 100, '英语': 90, '生物': 80}
scores = dict.fromkeys(['语文', '数学', '英语'])
print(scores)  # ['语文': None, '数学': None, '英语': None]

七、用字典格式化字符串

可在字符串模板中按key指定变量,然后通过字典为字符串模板中key设置值

# 用元组来格式化字符串,所以它根据位置来填充占位符
s1 = "图书名为:%s,价格为:%10.2f"
print(s1 % ("疯狂python讲义", 128))
# 图书名为:疯狂python讲义,价格为:       128.00

# 用字典来格式化字符串,所以它key来填充占位符
s2 = "图书名为:%(name)s,价格为:%(price)10.2f"
print(s2 % {price: 128, name: "疯狂python讲义"})
# 图书名为:疯狂python讲义,价格为:       128.00

你可能感兴趣的:(Python基础,python)