python字典

字典

创建字典

直接创建

# 创建空字典
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 元素,其数据类型和字典中的原来的数据类型相同

键值对取值

  1. 根据 key 获取 value 值
  2. 用 ==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() 可以打印的字符串表示

参考资料:

菜鸟教程

官方网站

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 代码写的越急,程序跑得越慢。—— Roy Carlson 目录 Python 字典是另一种非常实用的数据结构,在P...
    码农充电站pro阅读 3,688评论 0 1
  • 1. 简介 结构化数据是指有明确属性,明确表示规则的数据列表在表达结构化数据时语义不明确 列表有序存储数据,按索引...
    雨下一整晚y阅读 3,177评论 0 0
  • 字典是Python中唯一内建的映射类型,字典指定值并没有特殊顺序,都存储在一个特殊的键(Key)里,键可以是数字、...
    泷汰泱阅读 4,243评论 0 1
  • 一、字典基本操作 基本语法:dict = {'ob1':'computer', 'ob2':'mouse', 'o...
    古佛青灯度流年阅读 7,471评论 0 1
  • 这篇文章主要介绍了Python字典遍历操作,结合实例形式总结分析了Python遍历字典键值对、遍历键、遍历值等相关...
    九天牧人阅读 5,185评论 0 0