目录
字典的取值方法
1. .get()
.get()用于对字典取值,若字典中没有该值,并且未指定返回值,则输出为Non;若指定返回值,则会返回返回值。
举例:
book = {"书名": "三体", "价格": 18, "作者": "刘慈欣", "出版社": "****"}
a = book.get("书名") # 根据key获取value ,如果输入的是没有的key,会返回None
print(a)
b = book.get("年龄", "未知") # 后可加默认值,若没有key,则返回第二个值
print(b)
# 三体
# 未知
2. [' ']
[' '] 用中括号取值,类似于列表取值
举例:
book = {"书名": "三体", "价格": 18, "作者": "刘慈欣", "出版社": "****"}
a = book["书名"]
print(a)
# 三体
区别:
.get()取值时,当字典中没有要取的值时,会返回None或默认值;而[" "]取值时,字典中没有要取的值时,会报错。
3. .key()和 .values()
.key(),获取字典中所有的键;.values()获取字典所有的值
book = {"书名": "三体", "价格": 18, "作者": "刘慈欣", "出版社": "****"}
for i in book.keys():
print(i)
x = book.values() # 获取字典的value,以列表形式打印
print(x)
for m in book.values(): # 获取字典所有的values
print(m)
书名
价格
作者
出版社
dict_values(['三体', 18, '刘慈欣', '****'])
三体
18
刘慈欣
****
4. .items()
获取字典的键值对,最终以列表形输出
book = {"书名": "三体", "价格": 18, "作者": "刘慈欣", "出版社": "****"}
print(book.items()) # 获取键值对,以列表形式输出
for k, v in book.items():
print(k, v)
dict_items([('书名', '三体'), ('价格', 18), ('作者', '刘慈欣'), ('出版社', '****')])
书名 三体
价格 18
作者 刘慈欣
出版社 ****
可以看出,当使用.items()时,会以列表形式封装,并且键值对以元组封装。当我们想同时获取键和值时,可以进行for循环遍历
字典添加键值对
.setdefalult()
.setdefalult()用于添加字典的键值对,当有相应的键值对时,不会覆盖原来的值,没有才会添加
举例:
book = {"书名": "三体", "价格": 18, "作者": "刘慈欣", "出版社": "****"}
book.setdefault("书名", "qq")
book.setdefault("年龄", 54) # 只能做添加键值对使用
print(book)
{'书名': '三体', '价格': 18, '作者': '刘慈欣', '出版社': '****', '年龄': 54}
.update()
.update(),用于将两个字典合并为一个字典
book = {"书名": "三体", "价格": 18, "作者": "刘慈欣", "出版社": "****"}
dict1={"a":10,"b":3}
book.update(dict1) # 将字典合并
print(book)
{'书名': '三体', '价格': 18, '作者': '刘慈欣', '出版社': '****', 'a': 10, 'b': 3}
创建新字典
.fromkeys()
n1=(1,2,3)
dict1=dict.fromkeys(n1)
print(dict1)
{1: None, 2: None, 3: None}
n1=(1,2,3)
dict1=dict.fromkeys(n1,["num1","num2","num3"])
print(dict1)
可以看出,当创建新字典时,若没有指定值,则会返回None,指定后,也不会遍历赋值,而是直接将值赋予给每个键