Python字典创建、遍历、访问、修改与删除详解
本文详细介绍Python中字典的核心操作方法,涵盖使用花括号和dict函数创建字典,通过items、keys、values进行遍历,安全访问键值对,以及使用update、pop、del等方法进行增删改查,重点讲解避免KeyError的技巧及Python 3.7后的有序特性。
创建字典
在Python中,创建字典主要有两种方式:使用花括号{}或使用dict函数。其中,使用花括号的方式更为常见和直观。
d = {
"a": "Athens",
"b": "Belgrade",
"c": "Cairo"
}
或者:
d = dict(a="Athens", b="Belgrade", c="Cairo")
遍历
Python提供了便捷的方式来遍历字典,可以单独遍历keys或values,也可以在遍历过程中同时获取key和value。以下代码演示了具体的遍历方式:
for item in d.items():
print(item)
这种方式下,每一个item是一个tuple,包括key和value。
('a', 'Athens')
('b', 'Belgrade')
('c', 'Cairo')
也可以在遍历的时候通过两个变量得到key和value:
for k, v in d.items():
print(k, v)
如果只关心keys:
for k in d.keys():
print(k)
如果只关心values:
for v in d.values():
print(v)
访问
使用d[k]的语法可以获得key为k的值。如果key不存在,则会抛出KeyError异常。例如,对于刚才创建的字典,print(d["a"])可以得到Athens;但如果尝试访问d["d"],由于不存在key为d的项,程序将抛出KeyError异常。
d = dict(a="Athens", b="Belgrade", c="Cairo")
print(d["d"])
运行代码,抛出异常如下:
Traceback (most recent call last):
File "d:/temporary/python dict demo/test.py", line 4, in <module>
print(d["d"])
KeyError: 'd'
如果想避免抛出异常,有两个方法:方法一是使用get()方法,当没有对应的Key时返回None:
d = dict(a="Athens", b="Belgrade", c="Cairo")
print(d.get("d"))
方法二是在使用前先通过in进行判断:
d = dict(a="Athens", b="Belgrade", c="Cairo")
if "a" in d:
print(d["a"])
修改
最简单的方法是通过d[key] = value来修改字典。如果key不存在,则新建一个字典项:
d["a"] = "Atlanta"
update()方法可以使用一个字典来更新已有的字典。如果被更新的字典中已包含对应的key,那么原value会被覆盖;如果被更新的字典中不包含对应的key,则该key-value对被添加进去。例如如下代码:
d = dict(a="Athens", b="Belgrade", c="Cairo")
d.update({
"a": "Atlanta",
"b": "Belgrade",
"d": "Dehli"
})
print(d)
运行代码,a被替换为Atlanta,b保持不变,c被保留,d被增加:
{'a': 'Atlanta', 'b': 'Belgrade', 'c': 'Cairo', 'd': 'Dehli'}
删除
- clear()方法用于删除所有字典项
- del用于删除指定的字典项,如果key不存在,则抛出KeyError
- pop()用于删除对应的键值对,如果key不存在,也会抛出KeyError,但可以对不存在键的情况设置默认值
示例:
del d["a"]
print(d.pop("d", "none")) # 返回 none而不是KeyError
setdefault()方法
setdefault()方法在key已经存在的时候返回对应的值;如果key不存在,则根据第二个参数(default)增加key-value pair,比如:
d.setdefault("a", "Atlanta") # 因为a已经存在,返回Athens
d.setdefault("d", "Dehli") # 因为d不存在,将d设为Dehli
- dict用法和知识点总结:Python 3.7版本后,dict能保持key的插入顺序,而在3.7之前key是无序的。如果需要关心key的位置,可以使用SortedDict数据结构。
- pop()、get()和setdefault()三个方法都可以设置default值,从而避免KeyError异常。
- 字典的key不可重复。
到此这篇关于老生常谈python字典用法的文章就介绍到这了,更多相关python字典用法内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













