Python字典和集合讲解
什么是Python字典?
Python字典(dictionary)是一种可变容器数据类型,用于存储键值对。它是无序的,键必须是唯一的,而值可以是任意的对象。
字典可以通过一对花括号{}和键值对实现初始化,例如:
dict1 = {'name': 'Tom', 'age': 18, 'gender': 'Male'}
在上面的例子中,’name’、’age’、’gender’分别是字典dict1的键,而’Tom’、18和’Male’则是键对应的值。
字典的基本操作
1. 访问字典中的值
可以通过相应的键获取字典中的值,例如:
print(dict1['name']) # 输出Tom
2. 修改字典中的值
dict1['age'] = 20
print(dict1) # 输出{'name': 'Tom', 'age': 20, 'gender': 'Male'}
3. 添加键值对
dict1['city'] = 'Shanghai'
print(dict1) # 输出{'name': 'Tom', 'age': 20, 'gender': 'Male', 'city': 'Shanghai'}
4. 删除键值对
del dict1['gender']
print(dict1) # 输出{'name': 'Tom', 'age': 20, 'city': 'Shanghai'}
5. 获取所有键
print(dict1.keys()) # 输出dict_keys(['name', 'age', 'city'])
6. 获取所有值
print(dict1.values()) # 输出dict_values(['Tom', 20, 'Shanghai'])
7. 获取所有键值对
print(dict1.items()) # 输出dict_items([('name', 'Tom'), ('age', 20), ('city', 'Shanghai')])
8. 判断键是否存在
print('age' in dict1) # 输出True
print('gender' in dict1) # 输出False
示例演示
下面是一个根据球员姓名获取球员信息的示例:
player_dict = {'Lebron James': {'team': 'Los Angeles Lakers', 'number': 23},
'Stephen Curry': {'team': 'Golden State Warriors', 'number': 30},
'Kevin Durant': {'team': 'Brooklyn Nets', 'number': 7}}
name = input('请输入球员姓名:')
if name in player_dict:
print(f"{name}的球队是{player_dict[name]['team']},球衣号码是{player_dict[name]['number']}")
else:
print(f"没有找到{name}的球员信息")
什么是Python集合?
Python集合(set)是一种无序、不重复的数据集合,它支持集合的数学运算,例如交集、并集、差集等。
集合可通过一对花括号{}和逗号分隔的值来创建,例如:
set1 = {1, 2, 3}
集合的基本操作
1. 添加元素
set1.add(4)
print(set1) # 输出{1, 2, 3, 4}
2. 删除元素
set1.remove(3)
print(set1) # 输出{1, 2, 4}
3. 集合运算
可以使用以下运算符和方法对集合进行常见的集合运算:
- | 或 union():返回两个集合的并集
- & 或 intersection():返回两个集合的交集
-
- 或 difference():返回两个集合的差集
- ^ 或 symmetric_difference():返回两个集合的对称差集
例如:
set2 = {3, 4, 5}
print(set1 | set2) # 输出{1, 2, 3, 4, 5}
print(set1 & set2) # 输出{4}
print(set1 - set2) # 输出{1, 2}
print(set1 ^ set2) # 输出{1, 2, 3, 5}
示例演示
下面是一个用户输入一组数字,去重并排序后输出的示例:
input_nums = input('请输入一组数字,以空格分隔:').split()
num_set = set(map(int, input_nums))
sorted_nums = sorted(list(num_set))
print(f"去重并排序后的数字为:{sorted_nums}")
以上就是Python字典和集合的完整介绍和演示,希望能够对你有所帮助。