Python数据类型详解:集合、列表、元组与字典

"本文主要介绍了Python编程语言中的四种主要组合数据类型:集合、列表、元组和字典。集合是一种无序且元素唯一的数据结构,支持交集、并集、差集和补集等操作。列表是有序的元素集合,元素可以是不同类型,并支持索引和切片操作。元组与列表类似,但元素不可变,常用于记录不可更改的数据。字典则是一种键值对的映射关系,提供了快速查找和存储数据的方式。"
在Python中,组合数据类型是用于存储多个数据项的数据结构。以下是这些类型及其详细说明:
**1、集合(Set)**
集合是由无序且不重复的元素组成的。它提供了多种操作,如交集、并集、差集和补集,方便处理元素的关系。
- **交集 (Intersection)**:S&T,返回同时存在于集合S和T中的元素。
- **并集 (Union)**:S|T,返回包含S和T所有元素的新集合。
- **差集 (Difference)**:S-T,返回只在S中存在的元素。
- **补集 (Symmetric Difference)**:S^T,返回S和T中互不相同的元素。
集合操作函数和方法包括:
- `S.add(x)`:向集合S中添加元素x。
- `S.remove(x)`:从集合S中移除元素x。
- `S.clear()`:清空集合S的所有元素。
- `len(S)`:返回集合S的元素个数。
- `x in S`:判断元素x是否在集合S中,是则返回True,否则返回False。
- `x not in S`:判断元素x是否不在集合S中,是则返回True,否则返回False。
- `set()`函数:可以将其他数据类型转换为集合类型。
例如:
```python
S = {1001, 'python', 78.9}
T = {1001, 'set', 12.3, 1001, 1001}
print(S - T) # {'python', 78.9}
print(S & T) # {1001}
print(S | T) # {1001, 'set', 12.3, 78.9, 'python'}
print(S ^ T) # {'python', 'set', 12.3, 78.9}
```
**2、列表(List)**
列表是Python中最常用的序列类型,用中括号`[]`表示。列表可以包含任意数量和类型的元素,元素可以相同,不具有唯一性。
- **转换**:`list(x)`函数可以将其他数据类型如集合或字符串转换为列表。
- **序列操作**:支持索引、切片、增删改查等操作。
- **嵌套列表**:可以包含其他列表,形成多维数据结构。
例如:
```python
S = [1001, 'python', 78.9]
# S.append('新元素') # 添加元素到列表末尾
# S.pop() # 移除并返回列表末尾的元素
print(len(S)) # 输出列表长度
S = list("知之为知之,不知为不知") # 将字符串转为列表
print(S) # ['知', '之', '为', '知', '之', ',', '不', '知', '为', '不', '知']
```
**3、元组(Tuple)**
元组与列表相似,但其元素是不可变的。元组用圆括号`()`表示,常用于存储不可更改的数据。
例如:
```python
t = (1001, 'python', 78.9)
```
**4、字典(Dictionary)**
字典是一种键值对的映射结构,用花括号`{}`表示。字典中的元素可以通过键(key)快速访问,键必须是唯一的,但值可以重复。
- **创建**:`dict()`或键值对的列表。
- **访问**:`d[key]`返回键key对应的值。
- **操作**:`d[key] = value`设置键key的值,`del d[key]`删除键key及其值。
例如:
```python
d = {'name': 'John', 'age': 30, 'city': 'New York'}
print(d['name']) # 输出 'John'
```
这四种组合数据类型在Python编程中各有其应用场景,理解并熟练掌握它们对于编写高效、灵活的代码至关重要。
4789 浏览量
183 浏览量
114 浏览量
108 浏览量
166 浏览量
543 浏览量
187 浏览量

辉_0527
- 粉丝: 814
最新资源
- 支付宝订单监控免签工具:实时监控与信息通知
- 一键永久删除QQ空间说说的绿色软件
- Appleseeds训练营第4周JavaScript练习
- 免费HTML转CHM工具:将网页文档化简成章
- 奇热剧集站SEO优化模板下载
- Python xlrd库:实用指南与Excel文件读取
- Genegraph:通过GraphQL API使用Apache Jena展示RDF基因数据
- CRRedist2008与CRRedist2005压缩包文件对比分析
- SDB交流伺服驱动系统选型指南与性能解析
- Android平台简易PDF阅读器的实现与应用
- Mybatis实现数据库物理分页的插件源码解析
- Docker Swarm实例解析与操作指南
- iOS平台GTMBase64文件的使用及解密
- 实现jQuery自定义右键菜单的代码示例
- PDF处理必备:掌握pdfbox与fontbox jar包
- Java推箱子游戏完整源代码分享