Python-字典

时间:2020-02-23 14:42:38  来源:igfitidea点击:

在本教程中,我们将学习Python词典。

我们在Python-数据类型教程中简要讨论了字典。

什么是字典?

字典是键值对的无序集合。

我们使用大括号" {}"来创建字典,并使用冒号":"将键与值分开。
字典的每一对均以逗号分隔。

在以下示例中,我们将创建用户数据字典。

# dictionary
user = {
  "username": "theitroadtheitroad",
  "isOnline": False,
  "score": 9.1
}

# output
print("type:", type(user))
print(user)

我们将获得以下输出。

type: <class 'dict'>
{'username': 'theitroadtheitroad', 'isOnline': False, 'score': 9.1}

dict()构造函数

我们使用dict()构造函数在Python中创建字典。

# dictionary
user = dict(username = "theitroadtheitroad", isOnline = False, score = 9.1)

#output
print(user)
{'username': 'theitroadtheitroad', 'isOnline': False, 'score': 9.1}

访问字典项

字典项是一个键值对,因此,为了获得值,我们使用键。

以下是获取字典给定键值的语法。

dictionary[key]

其中,"字典"表示字典变量,而"键"是一些键,我们正在尝试访问其值。

在下面的Python程序中,我们将打印保存在"用户"字典的"用户名"键中的值。

# dictionary
user = {
  "username": "theitroadtheitroad",
  "isOnline": False,
  "score": 9.1
}

# output
print(user['username'])      # theitroadtheitroad

如果字典中不存在该键,则我们将收到错误消息。

使用get方法访问字典项

我们还可以使用get方法获取键的值。

在下面的Python程序中,我们将打印分数。

# dictionary
user = {
  "username": "theitroadtheitroad",
  "isOnline": False,
  "score": 9.1
}

# output
print(user.get('score'))     # 9.1

如果该键不存在,则get将返回NoneType类的None

在下面的Python程序中,我们尝试获取不存在的键的值。

# dictionary
user = {
  "username": "theitroadtheitroad",
  "isOnline": False,
  "score": 9.1
}

value = user.get('unknown')

# output
print("type:", type(value))
print("value:", value)

我们将获得以下输出。

type: <class 'NoneType'>
value: None

更改字典项目的值

我们使用以下语法来更改字典项的值。

dictionary[key] = value

其中,"字典"代表字典变量,"键"是我们要更改其值的某个键,而"值"是我们要分配给该键的新值。

在下面的Python程序中,我们将istrue分配给isOnline键。

# dictionary
user = {
  "username": "theitroadtheitroad",
  "isOnline": False,
  "score": 9.1
}

# change
user['isOnline'] = True

# output
print(user)
{'username': 'theitroadtheitroad', 'isOnline': True, 'score': 9.1}

打印字典的所有键

我们借助for循环来打印字典的所有键。

在下面的Python程序中,我们将输出用户词典的所有键。

# dictionary
user = {
  "username": "theitroadtheitroad",
  "isOnline": False,
  "score": 9.1
}

for k in user:
    print(k)

我们将获得以下输出。

username
isOnline
score

打印字典的键值对

要打印字典的键值对,我们需要使用for循环。

因此," for"循环可帮助我们获取字典的键。
然后使用键可以访问该值。

在下面的Python程序中,我们将打印键-值对。

# dictionary
user = {
  "username": "theitroadtheitroad",
  "isOnline": False,
  "score": 9.1
}

for k in user:
  print("key:", k, "value:", user[k])
key: username value: theitroadtheitroad
key: isOnline value: False
key: score value: 9.1

检查密钥是否存在

要检查给定词典中是否存在键,我们需要使用in-成员运算符。

如果密钥存在,则" in"运算符将返回" True"。
否则为False。

在下面的示例中,我们正在检查给定词典中某些项目的存在。

# dictionary
user = {
  "username": "theitroadtheitroad",
  "isOnline": False,
  "score": 9.1
}

# output
print("username" in user)   # True
print("score" in user)      # True
print("unknown" in user)    # False

计算字典项

我们使用len方法来计算给定字典中存在的项目总数(键值对)。

在下面的Python程序中,我们将打印项目总数。

# dictionary
user = {
    "username": "theitroadtheitroad",
    "isOnline": False,
    "score": 9.1
}

# output
print(len(user))     # 3

将新项目添加到字典

我们使用以下语法将新项目添加到现有字典中。

dictionary[key] = value

其中,"字典"代表字典变量,"键"是我们要添加到字典中的新项目键,"值"是新项目的值。

在下面的Python程序中,我们将新项目添加到用户字典中。

# dictionary
user = {
    "username": "theitroadtheitroad",
    "isOnline": False,
    "score": 9.1
}

# new item
user["level"] = 1

# output
print(user)

我们将获得以下输出。

{'username': 'theitroadtheitroad', 'isOnline': False, 'score': 9.1, 'level': 1}

弹出词典项目

我们使用pop方法从给定字典中弹出(删除)项目。

在下面的示例中,我们从用户词典中弹出"级别"项。

# dictionary
user = {
    "username": "theitroadtheitroad",
    "isOnline": False,
    "score": 9.1,
    "level": 1
}

# pop
itemValue = user.pop('level')

# output
print(itemValue)  # 1
print(user)       # {'username': 'theitroadtheitroad', 'isOnline': False, 'score': 9.1}

注意! pop方法将从列表中删除该项目,并返回删除的值,我们可以将其保存在某个变量中。

删除字典项目

我们也可以使用del关键字从字典中删除项目。

在下面的Python程序中,我们使用del关键字从用户字典中删除"级别"。

# dictionary
user = {
    "username": "theitroadtheitroad",
    "isOnline": False,
    "score": 9.1,
    "level": 1
}

# delete
del user['level']

# output
print(user)    # {'username': 'theitroadtheitroad', 'isOnline': False, 'score': 9.1}

删除字典

我们还可以使用del关键字来完全删除字典和所有项目。

在以下Python程序中,我们将删除用户字典。

# dictionary
user = {
    "username": "theitroadtheitroad",
    "isOnline": False,
    "score": 9.1,
    "level": 1
}

# delete
del user