赞
踩
使用列表前必须先生成列表。
在运算符[ ]中以逗号隔开各个元素会生成包含这些元素的新列表。另外,如果[ ]中没有元素就会生成空列表
示例
- >>> list01 = []
- >>> list01
- []
- >>> list02 = [1, 2, 3]
- >>> list02
- [1, 2, 3]
- >>> list03 = ['A', 'B', 'C']
- >>> list03
- ['A', 'B', 'C']
使用内置函数list可以生成包含各种类型对象(字符串和元组等)的列表
在不传递实参的情况下调用list()会生成空列表
示例
- >>> list05 = list() # [] 空列表
- >>> list05
- []
- >>> list06 = list('ABC') # 由字符串的各个字符生成
- >>> list06
- ['A', 'B', 'C']
- >>> list07 = list([1, 2, 3]) # 由列表生成
- >>> list07
- [1, 2, 3]
- >>> list08 = list((1, 2, 3)) # 由元组生成
- >>> list08
- [1, 2, 3]
- >>> list09 = list({1, 2, 3}) # 由集合生成
- >>> list09
- [1, 2, 3]
- >>> list10 = list(range(7)) # 用list函数转换range函数生成数列(可迭代对象)
- >>> list10
- [0, 1, 2, 3, 4, 5, 6]
- >>> list11 = list(range(3, 8))
- >>> list11
- [3, 4, 5, 6, 7]
- >>> list12 = list(range(3, 13, 2))
- >>> list12
- [3, 5, 7, 9, 11]
可以通过关键词 [None] 生成“元素总数确定,但元素的值不确定”的列表
列表[None]只有一个元素None,重复n次[None]后可以生成一个元素总数为n且所有元素都是None的列表。元素总数个数为5时生成的列表如下:
- >>> list13 = [None] * 5 # 生成一个元素总数为5且元素都为空的列表
- >>> list13
- [None, None, None, None, None]
生成空列表,然后使用append方法逐一添加元素
- x = []
- x.append(1)
- x.append(2)
- x.append(3)
- x.append(4)
- x.append(5)
- x.append(6)
- x.append(7)
-
- print(x)
'运行
使用for语句实现
- x = []
- for i in range(1, 8):
- x.append(i)
- print(x)
'运行
将range函数返回的数列(可迭代对象)转换成列表
- x = list(range(1, 8))
- print(x)
'运行
在实际编程中,列表解析式比较常用
[表达式 for 元素 in 可迭代对象] # 列表解析式(形式1)
示例:
生成列表[1, 2, 3, 4, 5, 6, 7]
- >>> x = [n for n in range (1, 8)]
- >>> x
- [1, 2, 3, 4, 5, 6, 7]
列表生成过程
生成元素值为1-7各数的平方的列表
- >>> x = [n * n for n in range (1, 8)]
- >>> x
- [1, 4, 9, 16, 25, 36, 49]
生成一个字符串列表,元素的奇数与‘+’拼接,偶数与‘-’拼接的字符串,如‘1+’、‘2-’、‘3+’、‘4-’等
- >>> x = [f'{n}{"+" if n % 2 == 1 else "-"} ' for n in range(1, 8) ]
- >>> x
- ['1+ ', '2- ', '3+ ', '4- ', '5+ ', '6- ', '7+ ']
[表达式 for 元素 in 可迭代对象 if 判断表达式] # 列表解析式(形式2)
调用这种形式的列表解析式后,程序仅在for语句循环中的判断表达式成立时取出元素
示例:
生成仅由1-7中的偶数构成的列表
- >>> x = [n for n in range(1, 8) if n % 2 ==0]
- >>> x
- [2, 4, 6]
列表生成过程
for语句一般可以嵌套,解析式的for语句也可以嵌套
使用列表解析式生成列表(嵌套的for)
示例:
- >>> x = [i * 10 + j for i in range(1,3) for j in range(1, 4)]
- >>> x
- [11, 12, 13, 21, 22, 23]
列表生成过程
使用嵌套的列表解析式生成二维列表
示例
- >>> table = [[ i * 10 + j for i in range(1,3)] for j in range(1, 4)]
- >>> table
- [[11, 21], [12, 22], [13, 23]]
列表生成过程
使用嵌套的列表解析式生成单位矩阵
- >>> im = [ [1 if i == j else 0 for i in range(n)] for j in range(n)]
- >>> im
- [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。