### Python常用的内置序列结构(列表、元组、字典)学习笔记
在Python编程语言中,序列是一类非常重要的数据结构,它允许开发者以一种有序的方式存储和操作多个元素。Python提供了多种内置的序列类型,其中最常用的是列表(List)、元组(Tuple)和字典(Dictionary)。本文将详细介绍这三种数据结构的基本特性和使用方法。
#### 1. 列表 (List)
列表是一种可变序列,它可以包含不同类型的数据,并且支持多种操作,比如添加、删除、修改等。列表使用方括号`[]`来表示。
**特点:**
- 可变性:列表中的元素是可以被修改的。
- 异质性:列表中的元素可以是不同类型的。
- 有序性:列表中的元素按照一定的顺序排列。
**常见操作:**
- **append(item)**:向列表尾部添加一个新元素。
- **remove(item)**:移除列表中第一次出现的指定元素。
- **insert(index, item)**:在指定位置插入一个新元素。
- **index(item)**:返回指定元素首次出现的位置。
- **extend(iterable)**:将另一个序列中的元素追加到当前列表的末尾。
- **pop([index])**:移除列表中的一个元素(默认最后一个),并返回该元素的值。
**示例代码:**
```python
name = ["zhang3", "li4", "wang5"]
name.append("gou6") # 添加项
name.remove("gou6") # 移除第一个匹配项
name.insert(3, "gou6") # 插入项
print(name.index("gou6")) # 找出第一个匹配项的位置
name.extend(["gou6", "xuan7"]) # 扩展
name.pop(0) # 返回列表的第一项值并从列表中删除
```
**列表函数:**
- **list(sequence)**:将一个序列(如字符串)转换为列表。
- **len(list)**:返回列表的长度。
- **max(list)**:返回列表中的最大元素。
- **min(list)**:返回列表中的最小元素。
- **sorted(list)**:对列表进行排序。
**示例代码:**
```python
a = list("higuys")
print(a) # 输出 ['h', 'i', '', 'g', 'u', 'y', 's']
print(''.join(a)) # 把列表还原成字符串
print(max(a)) # 取得列表的最大元素
print(len(a)) # 取得列表长度
print(min(a)) # 取得最小元素
print(tuple(a)) # 将列表转换为元组
print(sorted(a)) # 对列表进行排序
```
**列表遍历:**
- 使用`for`循环遍历列表。
- 使用`while`循环遍历列表。
**示例代码:**
```python
for each_item in name:
print(each_item)
i = 0
while i < len(name):
print(name[i])
i += 1
```
**成员资格测试:**
```python
"bear" in "hello,youareabear" # True
"y" in "hello,youareabear" # True
```
**示例代码:**
```python
database = [
["zhang3", "0111"],
["li4", "0112"],
["wang5", "0113"]
]
username = input("what's your username?")
id = input("what's your id?")
if [username, id] in database:
print("access granted")
```
#### 2. 元组 (Tuple)
元组也是一种序列,但它不可变。元组使用圆括号`()`来表示。
**特点:**
- 不可变性:一旦创建,元组中的元素不能被修改。
- 异质性:元组中的元素可以是不同类型的。
- 有序性:元组中的元素按照一定的顺序排列。
**元组操作:**
- **分片**:元组支持分片操作,但结果仍然是元组。
- **成员资格测试**:使用`in`关键字检查一个元素是否存在于元组中。
**示例代码:**
```python
t = (1, 2, 3, 4, 5)
print(t[1:3]) # 输出 (2, 3)
```
#### 3. 字典 (Dictionary)
字典是一种可变的无序序列,它由键值对组成。字典使用花括号`{}`来表示。
**特点:**
- 键唯一性:每个键在字典中必须是唯一的。
- 值可重复性:不同的键可以映射到相同的值。
- 无序性:字典中的元素没有固定的顺序。
**常见操作:**
- **dict()**:创建一个新的空字典。
- **keys()**:返回字典的所有键。
- **values()**:返回字典的所有值。
- **items()**:返回字典的所有键值对。
- **get(key[, default])**:获取指定键对应的值,如果键不存在,则返回默认值。
**示例代码:**
```python
person = {
"name": "Alice",
"age": 25,
"city": "New York"
}
print(person.keys()) # 输出字典的所有键
print(person.values()) # 输出字典的所有值
print(person.items()) # 输出字典的所有键值对
print(person.get("age")) # 获取 age 的值
print(person.get("gender", "Female")) # 获取 gender 的值,默认为 Female
```
以上介绍了Python中三种主要的内置序列结构——列表、元组和字典。这些数据结构在实际开发中非常有用,熟练掌握它们将有助于编写更加高效和优雅的Python程序。