列表生成式

Posted shinemiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了列表生成式相关的知识,希望对你有一定的参考价值。

  • 借助for循环实现的列表生成式:
>>>[x*x for x in range(5)]
[0, 1, 4, 9, 16, 25]
  • 也可以使用双重循环:
>>>[m+n for m in ‘ABC‘ for y in ‘XYZ‘]
[‘AX‘, ‘AY‘, ‘AZ‘, ‘BX‘, ‘BY‘, ‘BZ‘, ‘CX‘, ‘CY‘, ‘CZ‘]

三层或三层以上的循环较少用到

  • for后加if判断作为过滤条件,注意由于是作为过滤条件,不可再加else
    eg:
>>> [x for x in range(1, 11) if x % 2 == 0]
[2, 4, 6, 8, 10]
  • for前加if...else表达式也可:
>>> [x if x % 2 == 0 else -x for x in range(1, 11)]
[-1, 2, -3, 4, -5, 6, -7, 8, -9, 10]

以上是关于列表生成式的主要内容,如果未能解决你的问题,请参考以下文章

列表推导式和生成器

python 列表生成式

列表推导式和生成器表达式

python笔记十(列表生成式生成器)

函数式编程(列表生成式生成器迭代器)

列表推导式,生成器表达式