列表是有序可变的元素集合,列表可以嵌套,即列表里面的元素可以是列表,此外列表中的元素数据类型可以不一致,列表的定义方式有三种,如下所示,以下代码的运行环境是Python3.
# 列表的定义
# 方式1:对于规模比较小的列表可以直接定义和赋值
# 列表可以嵌套,即列表里面的元素可以是列表,此外列表中的元素数据类型可以不一致
name = ["a", 1, 2, [1, 2, 3]]
print(name, type(name)) # 结果为['a', 1, 2, [1, 2, 3]] <class 'list'>
# 方式2:利用列表生成式快速生成列表
# range(start, stop, step) 以步长为step生成范围为[start, stop)的列表
# 在Python2里用range()可以直接生成列表,但在Python3中为了防止生成的列表没有被使用而造成内存的浪费,没有直接生成列表
list1 = range(1, 10000, 2)
print(list1) # 结果为range(1, 10000, 2)
# 方式3:利用列表推导式生成新的列表
# 1、新列表与原列表一一映射
list0 = [1, 2, 3, 4]
resultList = []
# 将原列表的元素都平方后赋值给新的列表,两个列表中的元素一一对应
for element0 in list0:
element1 = element0 ** 2
resultList.append(element1) # 将生成的元素追加到新列表中
print(resultList) # 结果为[1, 4, 9, 16]
# 以上代码可以写成下面更简单的形式
resultList1 = []
resultList1 = [element0 ** 2 for element0 in list0]
print(resultList1) # 结果仍为[1, 4, 9, 16]
# 2、新列表是原列表过滤后的结果
resultList = []
# 将原列表中为偶数的元素平方后赋值给新的列表,新列表是原列表过滤掉部分元素后再变换的结果
for element0 in list0:
if element0 % 2 == 0:
element1 = element0 ** 2
resultList.append(element1) # 将生成的元素追加到新列表中
print(resultList) # 结果为[4, 16]
# 以上代码可以写成下面更简单的形式
resultList1 = []
resultList1 = [element0 ** 2 for element0 in list0 if element0 % 2 == 0]
print(resultList1) # 结果仍为[4, 16]
# 除了可以把元素个数变少后赋值给新的列表,还可以把元素变多
resultList2 = []
resultList2 = [element0 ** 2 for element0 in list0 for element0 in list0]
print(resultList2) # 结果为[1, 4, 9, 16, 1, 4, 9, 16, 1, 4, 9, 16, 1, 4, 9, 16]