这是什么类型的,它是如何工作的,是什么';它叫什么名字?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']