有哪些数据容器?
Python提供了几种常见的数据容器,包括列表(List)、元组(Tuple)、字典(Dictionary)和集合(Set)。他们都能满足容纳多个元素的特点。
每种容器都有其独特的特点和用途,我们将逐一探索它们。
字典(Dictionary)
字典是一种键值对的数据容器,用于存储和访问具有唯一键的值
。字典中的键和值可以是任意类型的数据。例如,我们可以创建一个名为student的字典来存储学生信息:student = {‘name’: ‘John’, ‘age’: 18, ‘grade’: ‘A’}。
字典的定义,使用{},存储的元素是一个一个的键值对。
# 定义字典字面量
{key: value, key: value, ……, key: value}
# 定义字典变量
my_dict = {key: value, key: value, ……, key: value}
# 定义空字典
my_dict = {}
my_dict = dict()
例如:
my_dict = {"王力宏": {"年龄":22}, "周杰伦": {"歌曲名称": ["简单爱","青花瓷"]}, "林俊杰":["江南","一千年以后","小酒窝","背对背拥抱"]}
my_dict2 = dict()
my_dict3 = {}
通过字典[key]=value
my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}
my_dict['born']=1999
print(my_dict) # 输出: {'name': 'Alice', 'age': 25, 'city': 'New York', 'born': 1999}
通过[key]即可取出value
my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}
print(my_dict['name']) # 输出: Alice
清空字典中的所有元素
# clear() 方法
my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}
my_dict.clear()
print(my_dict) # 输出: {}
返回字典的浅拷贝
my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}
new_dict = my_dict.copy()
print(new_dict) # 输出: {'name': 'Alice', 'age': 25, 'city': 'New York'}
创建一个新字典,使用指定的键序列(seq)作为键,并设置它们的值为 value。
# fromkeys(seq, value) 方法
x = ('key1', 'key2', 'key3')
y = 0
new_dict = dict.fromkeys(x, y)
print(new_dict) # 输出: {'key1': 0, 'key2': 0, 'key3': 0}
返回一个包含所有字典项的列表,每个元素都是一个 (key, value) 的元组。
# items() 方法
my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}
items = my_dict.items()
print(items) # 输出: dict_items([('name', 'Alice'), ('age', 25), ('city', 'New York')])
返回一个包含所有字典键的列表。
my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}
# keys() 方法
keys = my_dict.keys()
print(keys) # 输出: dict_keys(['name', 'age', 'city'])
返回一个包含所有字典值的列表。
my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}
# values() 方法
values = my_dict.values()
print(values) # 输出: dict_values(['Alice', 25, 'New York'])
删除指定键并返回对应的值,如果键不存在则返回默认值。
# pop(key, default) 方法
my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}
value = my_dict.pop('age')
print(value) # 输出: 25
随机删除并返回一个键值对(通常是末尾的键值对)。
# popitem() 方法
my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}
key, value = my_dict.popitem()
print(key, value) # 输出: city New York
print(my_dict) # 输出: {'name': 'Alice', 'age': 25}
返回指定键的值,如果键不存在则插入指定的键值对并返回默认值。
# setdefault(key, default) 方法
my_dict = {'name': 'Alice', 'age': 25}
value = my_dict.setdefault('city', 'New York')
print(value) # 输出: New York
print(my_dict) # 输出: {'name': 'Alice', 'age': 25, 'city': 'New York'}
value = my_dict.setdefault('age', 30)
print(value) # 输出: 25
print(my_dict) # 输出: {'name': 'Alice', 'age': 25, 'city': 'New York'}
使用另一个字典或可迭代对象的键值对更新字典。
# update(other_dict) 方法
my_dict = {'name': 'Alice', 'age': 25}
other_dict = {'city': 'New York', 'gender': 'female'}
my_dict.update(other_dict)
print(my_dict) # 输出: {'name': 'Alice', 'age': 25, 'city': 'New York', 'gender': 'female'}
返回字典中键值对的数量。
# len() 方法
my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}
length = len(my_dict)
print(length) # 输出: 3
可以使用 for 循环遍历字典的键、值或者键值对。
my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}
# 遍历键
for key in my_dict:
print(key)
# 遍历键
for key in my_dict.keys():
print(key)
# 遍历值
for value in my_dict.values():
print(value)
# 遍历键值对
for key, value in my_dict.items():
print(key, value)