Python 字典

字典(Dictionary)

字典是一个无序、可变和有索引的集合。在 Python 中,字典用花括号编写,拥有键和值。

创建并打印字典:

  1. thisdict = {
  2. "brand": "Porsche",
  3. "model": "911",
  4. "year": 1963
  5. }
  6. print(thisdict)

访问项目

您可以通过在方括号内引用其键名来访问字典的项目:

获取 "model" 键的值:

  1. thisdict = {
  2. "brand": "Porsche",
  3. "model": "911",
  4. "year": 1963
  5. }
  6. x = thisdict["model"]
  7. print(x)

还有一个名为 get() 的方法会给你相同的结果:

获取 "model" 键的值:

  1. thisdict = {
  2. "brand": "Porsche",
  3. "model": "911",
  4. "year": 1963
  5. }
  6. x = thisdict.get("model")
  7. print(x)

更改值

您可以通过引用其键名来更改特定项的值:

把 "year" 改为 2019:

  1. thisdict = {
  2. "brand": "Porsche",
  3. "model": "911",
  4. "year": 1963
  5. }
  6. thisdict["year"] = 2019
  7. print(thisdict)

遍历字典

您可以使用 for 循环遍历字典。

循环遍历字典时,返回值是字典的键,但也有返回值的方法。

逐个打印字典中的所有键名:

  1. thisdict = {
  2. "brand": "Porsche",
  3. "model": "911",
  4. "year": 1963
  5. }
  6. for x in thisdict:
  7. print(x)

逐个打印字典中的所有值:

  1. thisdict = {
  2. "brand": "Porsche",
  3. "model": "911",
  4. "year": 1963
  5. }
  6. for x in thisdict:
  7. print(thisdict[x])

您还可以使用 values() 函数返回字典的值:

  1. thisdict = {
  2. "brand": "Porsche",
  3. "model": "911",
  4. "year": 1963
  5. }
  6. for x in thisdict.values():
  7. print(x)

通过使用 items() 函数遍历键和值:

  1. thisdict = {
  2. "brand": "Porsche",
  3. "model": "911",
  4. "year": 1963
  5. }
  6. for x, y in thisdict.items():
  7. print(x, y)

检查键是否存在

要确定字典中是否存在指定的键,请使用 in 关键字:

检查字典中是否存在 "model":

  1. thisdict = {
  2. "brand": "Porsche",
  3. "model": "911",
  4. "year": 1963
  5. }
  6. if "model" in thisdict:
  7. print("Yes, 'model' is one of the keys in the thisdict dictionary")

字典长度

要确定字典有多少项目(键值对),请使用 len() 方法。

打印字典中的项目数:

  1. thisdict = {
  2. "brand": "Porsche",
  3. "model": "911",
  4. "year": 1963
  5. }
  6. print(len(thisdict))

添加项目

通过使用新的索引键并为其赋值,可以将项目添加到字典中:

  1. thisdict = {
  2. "brand": "Porsche",
  3. "model": "911",
  4. "year": 1963
  5. }
  6. thisdict["color"] = "red"
  7. print(thisdict)

删除项目

有几种方法可以从字典中删除项目:

pop() 方法删除具有指定键名的项:

  1. thisdict = {
  2. "brand": "Porsche",
  3. "model": "911",
  4. "year": 1963
  5. }
  6. thisdict.pop("model")
  7. print(thisdict)

popitem() 方法删除最后插入的项目(在 3.7 之前的版本中,删除随机项目):

  1. thisdict = {
  2. "brand": "Porsche",
  3. "model": "911",
  4. "year": 1963
  5. }
  6. thisdict.popitem()
  7. print(thisdict)

del 关键字删除具有指定键名的项目:

  1. thisdict = {
  2. "brand": "Porsche",
  3. "model": "911",
  4. "year": 1963
  5. }
  6. del thisdict["model"]
  7. print(thisdict)

del 关键字也可以完全删除字典:

  1. thisdict = {
  2. "brand": "Porsche",
  3. "model": "911",
  4. "year": 1963
  5. }
  6. del thisdict
  7. print(thisdict) #this will cause an error because "thislist" no longer exists.

clear() 关键字清空字典:

  1. thisdict = {
  2. "brand": "Porsche",
  3. "model": "911",
  4. "year": 1963
  5. }
  6. thisdict.clear()
  7. print(thisdict)

复制字典

您不能通过键入 dict2 = dict1 来复制字典,因为:dict2 只是对 dict1 的引用,而 dict1 中的更改也将自动在 dict2 中进行。

有一些方法可以进行复制,一种方法是使用内建的字典方法 copy()

使用 copy() 方法来复制字典:

  1. thisdict = {
  2. "brand": "Porsche",
  3. "model": "911",
  4. "year": 1963
  5. }
  6. mydict = thisdict.copy()
  7. print(mydict)

制作副本的另一种方法是使用内建方法 dict()

使用 dict() 方法创建字典的副本:

  1. thisdict = {
  2. "brand": "Porsche",
  3. "model": "911",
  4. "year": 1963
  5. }
  6. mydict = dict(thisdict)
  7. print(mydict)

嵌套字典

词典也可以包含许多词典,这被称为嵌套词典。

创建包含三个字典的字典:

  1. myfamily = {
  2. "child1" : {
  3. "name" : "Phoebe Adele",
  4. "year" : 2002
  5. },
  6. "child2" : {
  7. "name" : "Jennifer Katharine",
  8. "year" : 1996
  9. },
  10. "child3" : {
  11. "name" : "Rory John",
  12. "year" : 1999
  13. }
  14. }
  15. print(myfamily)

或者,如果您想嵌套三个已经作为字典存在的字典:

创建三个字典,然后创建一个包含其他三个字典的字典:

  1. child1 = {
  2. "name" : "Phoebe Adele",
  3. "year" : 2002
  4. }
  5. child2 = {
  6. "name" : "Jennifer Katharine",
  7. "year" : 1996
  8. }
  9. child3 = {
  10. "name" : "Rory John",
  11. "year" : 1999
  12. }
  13. myfamily = {
  14. "child1" : child1,
  15. "child2" : child2,
  16. "child3" : child3
  17. }
  18. print(myfamily)

dict() 构造函数

也可以使用 dict() 构造函数创建新的字典:

  1. thisdict = dict(brand="Porsche", model="911", year=1963)
  2. # note that keywords are not string literals
  3. # note the use of equals rather than colon for the assignment
  4. print(thisdict)

字典方法

Python 提供一组可以在字典上使用的内建方法。

方法描述
clear()删除字典中的所有元素
copy()返回字典的副本
fromkeys()返回拥有指定键和值的字典
get()返回指定键的值
items()返回包含每个键值对的元组的列表
keys()返回包含字典键的列表
pop()删除拥有指定键的元素
popitem()删除最后插入的键值对
setdefault()返回指定键的值。如果该键不存在,则插入具有指定值的键。
update()使用指定的键值对字典进行更新
values()返回字典中所有值的列表