4.9 KiB
4.9 KiB
python3小白课:列表元组入门
上节课我们知道了列表元组之间是可变和不可变的关系,其他十分类似,因此我们在学习的时候可以一起学习进行类比。举一反三,这样大家掌握得比较快。
我们直接就着代码来进行学习吧:
# 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]
# 第一、第二个元素分别赋值给a1,a2,剩下的元素赋值给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对象。可以被遍历(遍历的知识我们在后面再详细讲解),也可以转换成列表或者元组,这里我们来讲讲转换吧。
# 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 | 一系列,范围,区间,可以理解为生成区间序列 |