当前位置:   article > 正文

Python-生成列表_如何用python生成列表

如何用python生成列表

1.生成列表

  • 使用列表前必须先生成列表。

1.1使用运算符[ ]生成列表

  • 在运算符[ ]中以逗号隔开各个元素会生成包含这些元素的新列表。另外,如果[ ]中没有元素就会生成空列表

示例

  1. >>> list01 = []
  2. >>> list01
  3. []
  4. >>> list02 = [1, 2, 3]
  5. >>> list02
  6. [1, 2, 3]
  7. >>> list03 = ['A', 'B', 'C']
  8. >>> list03
  9. ['A', 'B', 'C']

1.2使用list函数生成列表

  • 使用内置函数list可以生成包含各种类型对象(字符串和元组等)的列表

  • 在不传递实参的情况下调用list()会生成空列表

示例

  1. >>> list05 = list() # [] 空列表
  2. >>> list05
  3. []
  4. >>> list06 = list('ABC') # 由字符串的各个字符生成
  5. >>> list06
  6. ['A', 'B', 'C']
  7. >>> list07 = list([1, 2, 3]) # 由列表生成
  8. >>> list07
  9. [1, 2, 3]
  10. >>> list08 = list((1, 2, 3)) # 由元组生成
  11. >>> list08
  12. [1, 2, 3]
  13. >>> list09 = list({1, 2, 3}) # 由集合生成
  14. >>> list09
  15. [1, 2, 3]
  16. >>> list10 = list(range(7)) # 用list函数转换range函数生成数列(可迭代对象)
  17. >>> list10
  18. [0, 1, 2, 3, 4, 5, 6]
  19. >>> list11 = list(range(3, 8))
  20. >>> list11
  21. [3, 4, 5, 6, 7]
  22. >>> list12 = list(range(3, 13, 2))
  23. >>> list12
  24. [3, 5, 7, 9, 11]

1.3指定元素总数生成列表

  • 可以通过关键词 [None] 生成“元素总数确定,但元素的值不确定”的列表

  • 列表[None]只有一个元素None,重复n次[None]后可以生成一个元素总数为n且所有元素都是None的列表。元素总数个数为5时生成的列表如下:

  1. >>> list13 = [None] * 5 # 生成一个元素总数为5且元素都为空的列表
  2. >>> list13
  3. [None, None, None, None, None]

1.4for循环生成列表

  • 生成空列表,然后使用append方法逐一添加元素

  1. x = []
  2. x.append(1)
  3. x.append(2)
  4. x.append(3)
  5. x.append(4)
  6. x.append(5)
  7. x.append(6)
  8. x.append(7)
  9. print(x)
'
运行
  • 使用for语句实现

  1. x = []
  2. for i in range(1, 8):
  3. x.append(i)
  4. print(x)
'
运行
  • range函数返回的数列(可迭代对象)转换成列表

  1. x = list(range(1, 8))
  2. print(x)
'
运行

2. 列表解析式

  • 在实际编程中,列表解析式比较常用

2.1列表解析式形式1

[表达式 for 元素 in 可迭代对象]    # 列表解析式(形式1)

示例:

  • 生成列表[1, 2, 3, 4, 5, 6, 7]

  1. >>> x = [n for n in range (1, 8)]
  2. >>> x
  3. [1, 2, 3, 4, 5, 6, 7]
  • 列表生成过程

  • 生成元素值为1-7各数的平方的列表

  1. >>> x = [n * n for n in range (1, 8)]
  2. >>> x
  3. [1, 4, 9, 16, 25, 36, 49]
  • 生成一个字符串列表,元素的奇数与‘+’拼接,偶数与‘-’拼接的字符串,如‘1+’、‘2-’、‘3+’、‘4-’等

  1. >>> x = [f'{n}{"+" if n % 2 == 1 else "-"} ' for n in range(1, 8) ]
  2. >>> x
  3. ['1+ ', '2- ', '3+ ', '4- ', '5+ ', '6- ', '7+ ']

2.2列表解析式形式2

[表达式 for 元素 in 可迭代对象 if 判断表达式]     # 列表解析式(形式2)

调用这种形式的列表解析式后,程序仅在for语句循环中的判断表达式成立时取出元素

示例

  • 生成仅由1-7中的偶数构成的列表

  1. >>> x = [n for n in range(1, 8) if n % 2 ==0]
  2. >>> x
  3. [2, 4, 6]
  • 列表生成过程

2.3嵌套的解析式

  • for语句一般可以嵌套,解析式的for语句也可以嵌套

  • 使用列表解析式生成列表(嵌套的for)

示例:

  1. >>> x = [i * 10 + j for i in range(1,3) for j in range(1, 4)]
  2. >>> x
  3. [11, 12, 13, 21, 22, 23]
  • 列表生成过程

  • 使用嵌套的列表解析式生成二维列表

示例

  1. >>> table = [[ i * 10 + j for i in range(1,3)] for j in range(1, 4)]
  2. >>> table
  3. [[11, 21], [12, 22], [13, 23]]
  • 列表生成过程

  • 使用嵌套的列表解析式生成单位矩阵

  1. >>> im = [ [1 if i == j else 0 for i in range(n)] for j in range(n)]
  2. >>> im
  3. [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/944209
推荐阅读
相关标签
  

闽ICP备14008679号