Python字典的基础操作

  • Post category:Python

Python字典是一个无序的key-value对集合。其中key必须唯一且不可变,而value可以是任何数据类型。Python中的字典可以用大括号 {} 或者dict()函数来创建。

创建Python字典

以下是用大括号{}创建字典的方法:

# 创建一个空字典
empty_dict = {}

# 创建有初始化键值对的字典
person = {'name': 'Alice', 'age': 24}

# 将二元元组列表转成字典
coords = [('x', 1), ('y', 2)]
dict(coords)
# 输出{'x': 1, 'y': 2}

获取字典中元素的值

可以使用中括号[],也可以使用get()方法获取字典中的元素,当key不存在时,使用get()方法可以设置默认值。

# 通过变量使用中括号获取字典元素的值
person = {'name': 'Alice', 'age': 24}
print(person['name'])  # 输出 'Alice'

# 通过变量使用get()方法获取字典元素的值
# 如果key不存在,返回默认值None
# 也可以自定义默认值
person = {'name': 'Alice', 'age': 24}
print(person.get('height'))  # 输出 None
print(person.get('height', 1.7))  # 输出 1.7

更改字典元素的值

可以直接通过中括号[],给字典的key重新赋值,或者使用update()方法批量更新。

# 直接通过中括号修改字典元素
person = {'name': 'Alice', 'age': 24}
person['name'] = 'Bob'
print(person) # 输出 {'name': 'Bob', 'age': 24}

# 使用update方法批量更新字典
person = {'name': 'Alice', 'age': 24}
person.update({'name': 'Bob', 'height': 1.7})
print(person) # 输出 {'name': 'Bob', 'age': 24, 'height': 1.7}

字典的遍历

可以使用for循环遍历字典的key或者value,或者遍历key-value对,使用items()方法返回的二元元组迭代。

# 遍历字典的key
person = {'name': 'Alice', 'age': 24}
for key in person:
    print(key)
# 输出 'name' 和 'age'

# 遍历字典的value
person = {'name': 'Alice', 'age': 24}
for value in person.values():
    print(value)
# 输出 'Alice' 和 24

# 遍历字典的key-value对
person = {'name': 'Alice', 'age': 24}
for key, value in person.items():
    print(key, value)
# 输出 'name' 'Alice' 和 'age' 24

示例

举个例子,假设我们要统计一个字符串中每个单词出现的次数,可以使用字典来完成。

string = 'this is a string that contains some repeated words this is not a new string'

# 将字符串转成单词列表
words = string.split()

# 统计每个单词的出现次数
word_count = {}
for word in words:
    if word in word_count:
        word_count[word] += 1
    else:
        word_count[word] = 1

# 输出结果
for word, count in word_count.items():
    print(f"{word}: {count}")
# 输出结果
'''
this: 2
is: 2
a: 2
string: 2
that: 1
contains: 1
some: 1
repeated: 1
words: 1
not: 1
new: 1
'''

另一个例子,在Flask框架中,我们可以使用字典来保存user_id和对应的user对象,方便通过user_id来查找对应的user对象。

from flask import Flask, json

app = Flask(__name__)

# 模拟数据
users = {
    '1': {'name': 'Alice', 'age': 24},
    '2': {'name': 'Bob', 'age': 25}
}

# 通过user_id获取user对象
@app.route('/user/<user_id>')
def get_user(user_id):
    user = users.get(user_id)
    if user:
        return json.dumps(user)
    else:
        return f"No user found for user_id: {user_id}"

以上就是Python字典的基础操作的完整攻略。