轻松上手,快乐学习!

Python 字典


字典

字典是一个无序,可变和索引的集合。在其他语言中也称为map,在Python中字典用大括号编写{},使用键-值(key-value)存储,具有极快的查找速度。

实例

创建并打印字典:

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
print(thisdict)

运行实例 »


访问项目

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

实例

获取“modle”键的值:

x = thisdict["model"]

运行实例 »

还可以调用get()的方法得到相同的结果:

实例

获取“model”键的值:

x = thisdict.get("model")

运行实例 »


更改值

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

实例

将“year”更改为"2018"年:

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
thisdict["year"] = 2018

运行实例 »


遍历字典

使用for循环遍历字典 。

循环遍历字典时,可以返回键名(keys),返回值(values)

实例

打印字典中的所有键名:

for x in thisdict:
  print(x)

运行实例 »

实例

打印字典中的所有键值:

for x in thisdict:
  print(thisdict[x])

运行实例 »

实例

使用values()函数返回字典的值:

for x in thisdict.values():
  print(x)

运行实例 »

实例

使用items()函数循环遍历

for x, y in thisdict.items():
  print(x, y)

运行实例 »


检查键值是否存在

检查键值是否存在可以使用in关键字:

实例

检查字典中是否存在“model”键值:

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
if "model" in thisdict:
  print("Yes, 'model' is one of the keys in the thisdict dictionary")

运行实例 »


字典长度

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

实例

打印字典中的项目数:

print(len(thisdict))

运行实例 »


添加项目

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

实例

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
thisdict["color"] = "red"
print(thisdict)

运行实例 »


删除项目

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

实例

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

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
thisdict.pop("model")
print(thisdict)

运行实例 »

实例

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

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
thisdict.popitem()
print(thisdict)

运行实例 »

实例

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

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
del thisdict["model"]
print(thisdict)

运行实例 »

实例

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

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
del thisdict
print(thisdict) #this will cause an error because "thisdict" no longer exists.

运行实例 »

实例

clear()关键字清空词典:

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
thisdict.clear()
print(thisdict)

运行实例 »


复制字典

复制 dict 与 list 相似

在列表中不能直接赋值的方式复制列表如:

dict2 =dict1,这是因为:dict2仅仅创建了一个新的标签指向了dict1指向的字典,如果发生变更dict1dict2 也会变更。

复制有多种方法如:

一种方法是使用内置的Dictionary方法 copy()

实例

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

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
mydict = thisdict.copy()
print(mydict)

运行实例 »

可以使用内置方法 dict()

实例

使用以下dict()方法复制字典:

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
mydict = dict(thisdict)
print(mydict)

运行实例 »


dict()构造函数

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

实例

thisdict = dict(brand="Ford", model="Mustang", year=1964)
# note that keywords are not string literals
# note the use of equals rather than colon for the assignment
print(thisdict)

运行实例 »


字典方法

Python有一组可以在字典上使用的内置方法。

方法 描述
clear() 删除字典内所有元素
copy() 返回一个字典的浅复制
fromkeys() 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
get() 返回指定键的值,如果值不在字典中返回default值
items() 以列表返回可遍历的(键, 值) 元组数组
keys() 返回一个迭代器,可以使用 list() 来转换为列表
pop() 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
popitem() 随机返回并删除字典中的一对键和值(一般删除末尾对)。
setdefault() 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
update() 把字典dict2的键/值对更新到dict里
values() 返回一个迭代器,可以使用 list() 来转换为列表