python3xiaobaike_2020/chapter3/3-2 python3小白课:列表元组入门.md
2025-04-20 23:22:14 +08:00

109 lines
4.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# python3小白课列表元组入门
上节课我们知道了列表元组之间是可变和不可变的关系,其他十分类似,因此我们在学习的时候可以一起学习进行类比。举一反三,这样大家掌握得比较快。
我们直接就着代码来进行学习吧:
```python
# coding:utf-8
# 简单定义列表、元组,里面的元素可以是各种基础的数据类型,同一个列表、元组中可以多种类型混合
a = [1, "小白", None]
b = (1, "小白", None)
# 除了这种定义方法,还能使用关键字命令生成列表或元组,常用来转换
aa = list(b)
bb = tuple(a)
print(aa, bb)
print(list(), tuple(), [], ()) # 多种方法快速生成空的列表或元组
# 可以通过索引进行访问,还是用到[],跟之前字符串基本是类似的,取出来的称为子序列
print(a[0])
print(b[-2])
print(a[1:])
print(b[0:2:2])
# 列表之间、元组之间可以相加变成新序列,但不能列表+元组
print(a + [2])
# 当一个元组只有一个元素的时候,需要在结尾多写一个逗号,否则不能视为元组,这是规定:(2,)
# 如果写(2)它等价于数字2要变成元组必须加上,
print((2) == 2) # 你可以这样测试
print(b + (2,))
# 列表和元组还支持乘法可以让列表或元组重复n次
print(a * 3)
print(b * 4)
# 使用in运算符可以查看某元素在不在列表或元组中这个我们已经学过
print(1 in a)
print(None in b)
# len函数可以查看列表或元组有多少个元素
print(len(a), len(b))
# max、min函数可以获取列表或元组中的最大或最小值但需要元素是相同类型且可以比较大小才行
c = [3, 2, 9, 12, 30]
d = ("apple", "banana", "color", "zoo") # 如果是字符串,会进行字母比较
print(max(c), min(c))
print(max(d), min(d))
"""
python支持序列封包Sequence Packing和序列解包Sequence Unpacking的功能
序列封包:把多个值赋值给一个变量时,会自动将多个值封装为一个元组
序列解包:可以将列表和元组赋值给多个变量,这样元素会被依次赋值给每个变量
我们来看一下代码示例:
"""
# 序列封包
a = 1, 4, 8
print(a, type(a))
# 序列解包
a, b, c = [1, 2, 3]
d, e, f = (4, 5, 6)
print(a, b, c)
print(d, e, f)
# 在变量名左侧加上*号,这个变量就可以表示一个列表,支持在解包时存入列表
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 第一、第二个元素分别赋值给a1a2剩下的元素赋值给a3
a1, a2, *a3 = a
print(a1, a2, a3, sep="|")
# 同理也有如下写法,啥意思呢?效果可以自行测试
a1, *a2, a3 = a
print(a1, a2, a3, sep="|")
*a1, a2, a3 = a
print(a1, a2, a3, sep="|")
```
通过上面的学习,大家是不是对列表、元组的初步使用有了一个更深刻的认识呢?希望里面涉及的简单例子大家都自己跑一跑,保证自己能够理解和记忆。
---
### range函数
range函数是一个生成列表很重要的函数通常会用在for循环的流程控制当中关于流程控制后面的课程我们将会有更加详细的讲解。
range函数经历了一些演变我们只需要记忆python3中的概念就好在python3中range函数返回一个range对象。可以被遍历遍历的知识我们在后面再详细讲解也可以转换成列表或者元组这里我们来讲讲转换吧。
```python
# coding:utf-8
# range支持1~3个参数传入跟[]索引一样,分别表示开始、结束(不包含)、步长
# 我们可以通过list()函数转化为列表输出查看结果如果要转成元组使用tuple()转即可,不再赘述
print(list(range(10)))
print(len(range(10)))
print(list(range(1, 10)))
print(list(range(1, 10, 2)))
# 步长如果不传默认为1如果序列是逆向的则需要传入负的步长
print(list(range(1, -10, -1)))
print(list(range(1, -10, -2)))
```
关于range的知识大家需要先行了解然后熟练掌握后续我们做循环流程控制的时候它是一种重要的手段。
### 单词释义
| 单词 | 释义 |
| ------------------ | ------------------------------------------ |
| list | 列表 |
| tuple | 元组 |
| apple | 苹果 |
| banana | 香蕉 |
| color | 颜色 |
| zoo | 动物园 |
| max | 最大值 |
| min | 最小值 |
| Sequence Packing | 序列封包 |
| Sequence Unpacking | 序列解包 |
| range | 一系列,范围,区间,可以理解为生成区间序列 |