码途钥匙吧 关注:55贴子:750
  • 0回复贴,共1

Python基础核心语法学习之“散列类型—字典与集合”

取消只看楼主收藏回复

#码途钥匙#
### Python 学习笔记:字典与集合
#### 1. 字典(Dictionary)
**1.1 基本概念**
- 字典是 Python 中的一种可变容器模型,可以存储任意类型的对象。
- 字典中的元素是键值对(key-value pair),键和值之间用冒号 `:` 分隔,键值对之间用逗号 `,` 分隔。
- 字典的键必须是不可变类型(如字符串、数字、元组),且必须是唯一的。
**1.2 创建字典**
```python
# 使用花括号创建字典
my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}
# 使用 dict() 函数创建字典
my_dict = dict(name='Alice', age=25, city='New York')
```
**1.3 访问字典元素**
```python
# 通过键访问值
print(my_dict['name']) # 输出: Alice
# 使用 get() 方法访问值,避免键不存在时抛出异常
print(my_dict.get('age')) # 输出: 25
print(my_dict.get('gender', 'Unknown')) # 输出: Unknown
```
**1.4 修改字典**
```python
# 修改现有键的值
my_dict['age'] = 26
# 添加新的键值对
my_dict['gender'] = 'Female'
```
**1.5 删除字典元素**
```python
# 删除指定键值对
del my_dict['city']
# 使用 pop() 方法删除并返回指定键的值
age = my_dict.pop('age')
# 清空字典
my_dict.clear()
```
**1.6 遍历字典**
```python
# 遍历所有键值对
for key, value in my_dict.items():
print(f'{key}: {value}')
# 遍历所有键
for key in my_dict.keys():
print(key)
# 遍历所有值
for value in my_dict.values():
print(value)
```
**1.7 字典推导式**
```python
# 创建一个字典,键为数字,值为其平方
squares = {x: x**2 for x in range(1, 6)}
print(squares) # 输出: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
```
#### 2. 集合(Set)
**2.1 基本概念**
- 集合是一个无序的、不重复的元素集。
- 集合中的元素必须是不可变类型(如字符串、数字、元组)。
- 集合常用于去重和成员测试。
**2.2 创建集合**
```python
# 使用花括号创建集合
my_set = {1, 2, 3, 4, 5}
# 使用 set() 函数创建集合
my_set = set([1, 2, 3, 4, 5])
```
**2.3 添加元素**
```python
# 添加单个元素
my_set.add(6)
# 添加多个元素
my_set.update([7, 8, 9])
```
**2.4 删除元素**
```python
# 删除指定元素
my_set.remove(5)
# 删除指定元素,如果元素不存在不会抛出异常
my_set.discard(10)
# 随机删除并返回一个元素
element = my_set.pop()
```
**2.5 集合运算**
```python
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
# 并集
union_set = set1 | set2 # 或使用 set1.union(set2)
# 交集
intersection_set = set1 & set2 # 或使用 set1.intersection(set2)
# 差集
difference_set = set1 - set2 # 或使用 set1.difference(set2)
# 对称差集
symmetric_difference_set = set1 ^ set2 # 或使用 set1.symmetric_difference(set2)
```
**2.6 集合推导式**
```python
# 创建一个集合,包含1到10的平方
squares = {x**2 for x in range(1, 11)}
print(squares) # 输出: {1, 4, 9, 16, 25, 36, 49, 64, 81, 100}
```
#### 3. 总结
- **字典** 是一种键值对的集合,适合存储需要通过键快速查找值的场景。
- **集合** 是一种无序且不重复的元素集,适合去重和集合运算。
通过掌握字典和集合的基本操作,可以更高效地处理数据,并编写出更简洁、易读的 Python 代码。


IP属地:广东1楼2025-02-13 23:09回复