Python单行“for”表达式

时间:2009-10-09 17:17:05

标签: python lambda

我不确定我是否需要lambda或其他东西。但是,我仍然需要以下内容:

我有array = [1,2,3,4,5]。我需要把这个数组放到另一个数组中。但是把它全部写在一行。

for item in array:
    array2.append(item)

我知道完全有可能遍历项目并使其成为一行。但谷歌搜索和阅读手册并没有帮助我那么多...如果你能给我一个提示或命名这个东西,以便我能找到它是什么,我真的很感激。

更新:让我们这样说:array2 = SOME FANCY EXPRESSION THAT IS GOING TO GET ALL THE DATA FROM THE FIRST ONE

(这个例子不是真的。我只是想迭代不同的数据块,但这是我能想到的最好的数据)

6 个答案:

答案 0 :(得分:42)

您要查找的关键字是list comprehensions

>>> x = [1, 2, 3, 4, 5]
>>> y = [2*a for a in x if a % 2 == 1]
>>> print(y)
[2, 6, 10]

答案 1 :(得分:9)

for item in array: array2.append (item)

或者,在这种情况下:

array2 += array

答案 2 :(得分:1)

如果您正在尝试复制数组:

array2 = array[:]

答案 3 :(得分:1)

如果你真的只需要将一个数组中的项添加到另一个数组中,那么'+'运算符已经超载了,顺便说一下:

a1 = [1,2,3,4,5]
a2 = [6,7,8,9]
a1 + a2
--> [1, 2, 3, 4, 5, 6, 7, 8, 9]

答案 4 :(得分:1)

即使array2.extend(array1)也可以。

答案 5 :(得分:-1)

使用列表中的元素' A'创建一个新列表' B'与元素,小于10

选项1:

A = [1, 1, 2, 3, 5, 8, 13, 4, 21, 34, 9, 55, 89]

B = []
for i in range(len(A)):
    if A[i] < 10:
        B.append(A[i])
print(B)

选项2:

A = [1, 1, 2, 3, 5, 8, 13, 4, 21, 34, 9, 55, 89]

B = [A[i] for i in range(len(A)) if A[i] < 10]
print(B)

结果:[1,1,2,3,5,8,4,9]