这是什么类型的,它是如何工作的,是什么';它叫什么名字?python

这是什么类型的,它是如何工作的,是什么';它叫什么名字?python,python,for-loop,Python,For Loop,我肯定这个问题很久以前就被问过了,但我找不到它,因为我不知道如何搜索它 最近我到处都能看到这种。所以我想知道它是怎么工作的,它的用途是什么,还有这些东西。如果您能给出多个示例,以及与其他代码相关的等效性等,我将不胜感激。非常感谢 这就是我想要的那种 x = [x for x in range(len(ys))] 或 谢谢 这是一个问题 列表理解提供了创建列表的简明方法。常见的应用程序是创建新的列表,其中每个元素是应用于另一个序列或iterable的每个成员的某些操作的结果,或者创建满足特定条

我肯定这个问题很久以前就被问过了,但我找不到它,因为我不知道如何搜索它

最近我到处都能看到这种
。所以我想知道它是怎么工作的,它的用途是什么,还有这些东西。如果您能给出多个示例,以及与其他代码相关的等效性等,我将不胜感激。非常感谢

这就是我想要的那种

x = [x for x in range(len(ys))] 

谢谢

这是一个问题

列表理解提供了创建列表的简明方法。常见的应用程序是创建新的列表,其中每个元素是应用于另一个序列或iterable的每个成员的某些操作的结果,或者创建满足特定条件的这些元素的子序列

您经常看到的基本结构是迭代列表的
[EXP for VAR in LIST]
,对于列表中的每个元素,
EXP
通过将
VAR
设置为相应的列表元素进行计算

让我们从包含整数0到9的列表
x
开始:

>>> x = range(10)
>>> x
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
您可以使用类似于
map()
的列表理解来更改每个元素:

>>> [i * 2 for i in x]
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
您可以使用它筛选出元素:

>>> [i for i in x if i % 2 == 0]
[0, 2, 4, 6, 8]
您可以同时执行这两项操作:

>>> [i * 2 for i in x if i % 2 == 0]
[0, 4, 8, 12, 16]
您甚至不必引用迭代变量:

>>> ["foo" for i in x if i % 2 == 0]
['foo', 'foo', 'foo', 'foo', 'foo']
问题中的第二个示例是如何为每个元素投影列表的示例;在这种特殊情况下,正在遍历的外部列表包含iterables。此表达式将内部ITerable映射到列表。这可以用来映射嵌套列表。

它被称为“列表理解”-它有同级的“生成器表达式”、“集合理解”和“dict理解”
>>> ["foo" for i in x if i % 2 == 0]
['foo', 'foo', 'foo', 'foo', 'foo']