字典
创建字典
直接创建
# 创建空字典
dict1 = {}
# 创建字典语句
dict2 = {
key: value,
key2: value2,
...
keyn: valuen
}
dict3 = {
"name": "ahu",
"sex": "女",
"age": 18
}
print(dict3)
dict()
info = dict(
name = "ahu",
sex = "女",
age = 18
)
print(info)
dict( ) 和 dict{ } 的区别
- () vs {}
- name vs "name"
- = vs :
创建空字典,运用字典增加的方式新建字典
dict1 = {}
dict1["name"] = "ahu"
dict1["sex"] = "女"
dict1["age"] = 18
print(dict1)
注意:字典里的 key 是唯一的不能相同,value可以相同。
key: value
key --> 键 value --> 值 一个键和值称为一个键值对,键和值之间用冒号隔开,键值对之间用分号隔开
添加键值对
# 创建字典
dict1 = {
"a": 1,
"h": 4,
"u": 9,
"p": 16
}
# 添加键值对
dict1["e"] = 25
print(dict1) # {'a': 1, 'h': 4, 'u': 9, 'p': 16, 'e': 25}
删除键值对
只需要删除键值中的键,即可删除键值对
pop()
dict1 = {
"a": 1,
"h": 4,
"u": 9,
"p": 16
}
dict1.pop("p") # 根据键删除键值对
print(dict1) # {'a': 1, 'h': 4, 'u': 9}
del
del dict1["a"] # 根据值删除键值对
print(dict1) # {'h': 4, 'u': 9}
区别:pop函数是根据键进行删除,del是根据值来删除键值对
修改键值对
如果key值存在,同时又给key新增一个value值,那么原键值对就会被覆盖掉,就可以看作是修改键值对
dict1 = {
"a": 1,
"h": 4,
"u": 9,
"p": 12
}
dict1["p"] = 16 # 重新赋值就是修改
print(dict1) # {'a': 1, 'h': 4, 'u': 9, 'p': 16}
查找和访问键值对
==遍历键值对==
- for循环
- 遍历键值对用 ==items 函数==,可以同时取出键和值,返回是一个列表
items()
dict1 = {
"a": 1,
"f": 2,
"h": 4,
"k": 8
}
for i in dict1.items():
print(i)
返回的是元组数据,第一个值为key,第二值为value
如果想要遍历所有的键或所有的值,将 i 变量分为两个变量,然后再输出遍历
dict1 = {
"a": 1,
"f": 2,
"h": 4,
"k": 8
}
for key, value in dict1.items():
print(key)
print(value)
print(key,vlaue)
同样都是遍历字典,第一个代码块中的变量 i 输出的是元组类型,而 key 和 value 变量输出的是字典中单个 key 和 value 元素,其数据类型和字典中的原来的数据类型相同
键值对取值
- 根据 key 获取 value 值
- 用 ==get函数==获取value值
get()
dict1 = {
"a": 1,
"f": 2,
"h": 4,
"k": 8
}
value1 = dict1["a"]
value2 = dict1.get("a")
print(value1)
print(value2)
如何获取字典中所有的 key 和所有的 value?将所有的 key 和 value 值添加进新列表当中??
dict1 = {
"a": 1,
"f": 2,
"h": 4,
"k": 8
}
keys = []
values = []
for i in dict1:
keys.append(i)
values.append(dict1[i])
print(keys) # ['a', 'f', 'h', 'k']
print(values) # [1, 2, 4, 8]
还可以通过 ==keys 和 values 函数==获取字典中所有的 key 和 value 列表
keys()、values()
# 获取字典中所有的 key
dict1 = {
"a": 1,
"f": 2,
"h": 4,
"k": 8
}
list1 = dict1.keys() # 获取所有的 key 值
print(type(list1)) # list1 返回的是元组
new_list1 = list(list1) # 将dict_keys 类型转换成列表
print(type(new_list1))
for i in new_list1:
print(i)
list1 = dict1.keys() 使用了字典当中的 keys 函数,返回一个 dict_keys 的组合,是元组类型,所以不能通过索引来访问,要先转换成列表再进行操作
判断字典是否存在某个键
使用关键字 in 即可,如果存在就返回True,不存在则返回False
dict1 = {
"a": 1,
"f": 2,
"h": 4,
"k": 8
}
print("a" in dict1) # True
print("d" in dict1) # False
那如果要判断某一个值是否在字典当中呢?
value_input = int(input("请输入一个数字:"))
dict1 = {
"a": 1,
"f": 2,
"h": 4,
"k": 8,
"d": 16
}
values = []
for key, value in dict1.items():
values.append[value]
if value_input in values:
print("yes")
else:
print("no")
字典的其他内置函数/方法
copy() | 复制字典 |
---|---|
update(dict) | 将dict的键值对更新到原来的字典当中 |
popitem() | 返回并删除字典中最后一对键和值 |
len() | 计算字典元素个数 |
str() | 可以打印的字符串表示 |
参考资料: