猪行天下之Python基础——3.3 字典

简介: 内容简述:1、字典(Dict)

1、字典(Dict)


和列表,元组通过下标序列来索引元素不同,字典使用「键值对」的形式来存储数据,通过键来索引值,创建字典时,键不能重复重复后面的会覆盖!因为键必须不可变,所以键可用数字,字符串或元组,但是不能用列表!使用「:冒号」分隔键与值,多个键值对用「,逗号」分隔字典 也是支持嵌套的!另外还有一点要注意:字典是无序的!!!


① 字典创建


可以用过「大括号」直接构造或者通过 dict()函数  和 fromkeys()函数 进行构造,代码示例如下:


# 直接通过大括号进行创建
dict_1 = {} # 定义一个空字典
dict_2 = {'a': 1, 'b': 2, 3: "c"} # 定义一个普通字典
dict_3 = dict_2.copy() # 浅复制一个字典
# 通过dict函数创建字典
dict_4 = dict(a=1, b=2, c=3)
dict_5 = dict(zip(['a','b','c'],(1,2,3)))
dict_6 = dict([('a',1),('b',2),('c',3)])
# 通过fromkeys创建并返回新的字典,有两个参数,键和键对应的值
# 值可以不提供,默认None,不过有个输出结果要注意一下!!!
dict_7 = {}.fromkeys(['a','b','c'],[1,2,3])
# 输出字典:
print('dict_1:%s' % dict_1)
print('dict_2:%s' % dict_2)
print('dict_3:%s' % dict_3)
print('dict_4:%s' % dict_4)
print('dict_2:%s' % dict_5)
print('dict_3:%s' % dict_6)
print('dict_4:%s' % dict_7)


运行结果如下


dict_1:{}
dict_2:{'a': 1, 'b': 2, 3: 'c'}
dict_3:{'a': 1, 'b': 2, 3: 'c'}
dict_4:{'a': 1, 'b': 2, 'c': 3}
dict_5:{'a': 1, 'b': 2, 'c': 3}
dict_6:{'a': 1, 'b': 2, 'c': 3}
dict_7:{'a': [1, 2, 3], 'b': [1, 2, 3], 'c': [1, 2, 3]}


② 访问字典中的元素


代码示例如下


# 通过键查询对应的值,如果没有这个键会报错TypeError
print(dict_1['b'])
# 通过get()方法查询键对应的值,没有的话默认返回None,你也可以改成返回其他值
print(dict_1.get('d'))
# 和get()类似,如果找不到键的话会自动添加键,并赋值None
print(dict_1.setdefault('d'))
print(dict_1)
# 判断字典中是否有某个键
print('d' in dict_1)
print(dict_1.__contains__('d'))
# 获得字典里所有的键
print(dict_1.keys())
# 获得字典里所有的值
print(dict_1.values())
# 获得字典里所有的键值对
print(dict_1.items())


运行结果如下


2
None
None
{'a': 1, 'b': 2, 3: 'c', 'd': None}
True
True
dict_keys(['a', 'b', 3, 'd'])
dict_values([1, 2, 'c', None])
dict_items([('a', 1), ('b', 2), (3, 'c'), ('d', None)])


③ 修改字典


代码示例如下


dict_1 = {'a': True, 'b': 2, 3: "c"} 
dict_1['b'] = 'HaHa'
print(dict_1)
# 把别的字典里的键值对更新到字典里
dict_1.update({'d':'Pig', 'e':'1'})
print(dict_1)


运行结果如下


{'a': True, 'b': 'HaHa', 3: 'c'}
{'a': True, 'b': 'HaHa', 3: 'c', 'd': 'Pig', 'e': '1'}


④ 字典遍历


代码示例如下


dict_1 = {'a': True, 'b': 2, 3: "c"}
# 方法一
for d in dict_1:
    print("%s:%s," % (d, dict_1.get(d)),end='')
# 方法二
for (k, v) in dict_1.items():
    print("%s:%s," % (k, v),end='')


运行结果如下


a:True,b:2,3:c,
a:True,b:2,3:c,


⑤ 有序字典


上面也说了Python中默认的字典是无序的,即:遍历字典取出元素的顺序不确定,因为元素时按Hash来存储的。但是有时,有些应用场景,我们希望遍历字典取出元素的顺序和我们保存元素进去的顺序一致,可以直接利用Python内置的collection模块里的子类「OrderedDict」,实现对字典元素的排序。使用代码示例如下:


from collections import OrderedDict
dict_2 = OrderedDict()
dict_2[1] = 'a'
dict_2[2] = 'b'
dict_2[3] = 'c'
dict_2[4] = 'd'
dict_2[5] = 'e'
for (k, v) in dict_2.items():
    print("%s:%s," % (k, v),end='')


运行结果如下


1:a,2:b,3:c,4:d,5:e,


目录
打赏
0
0
0
0
7
分享
相关文章
|
2月前
|
深入理解 Python 的 eval() 函数与空全局字典 {}
`eval()` 函数在 Python 中能将字符串解析为代码并执行,但伴随安全风险,尤其在处理不受信任的输入时。传递空全局字典 {} 可限制其访问内置对象,但仍存隐患。建议通过限制函数和变量、使用沙箱环境、避免复杂表达式、验证输入等提高安全性。更推荐使用 `ast.literal_eval()`、自定义解析器或 JSON 解析等替代方案,以确保代码安全性和可靠性。
58 2
|
4月前
|
如何使用Python将字典转换为XML
本文介绍了如何使用Python中的`xml.etree.ElementTree`库将字典数据结构转换为XML格式。通过定义递归函数处理字典到XML元素的转换,生成符合标准的XML文档,适用于与旧系统交互或需支持复杂文档结构的场景。示例代码展示了将一个简单字典转换为XML的具体实现过程。
38 1
一文让你彻底搞懂 Python 字典是怎么实现的
一文让你彻底搞懂 Python 字典是怎么实现的
108 13
【Python】字典
【Python】字典
53 1
Python MySQL查询返回字典类型数据的方法
通过使用 `mysql-connector-python`库并选择 `MySQLCursorDict`作为游标类型,您可以轻松地将MySQL查询结果以字典类型返回。这种方式提高了代码的可读性,使得数据操作更加直观和方便。上述步骤和示例代码展示了如何实现这一功能,希望对您的项目开发有所帮助。
214 4
|
6月前
|
Python 字典删除下标前两个
Python 字典删除下标前两个
35 1
Python学习四:流程控制语句(if-else、while、for),高级数据类型(字符串、列表、元组、字典)的操作
这篇文章主要介绍了Python中的流程控制语句(包括if-else、while、for循环)和高级数据类型(字符串、列表、元组、字典)的操作。
76 0
分析、总结Python使用列表、元组、字典的场景
分析、总结Python使用列表、元组、字典的场景
74 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等