Python 单行 "for" 表达式

92 投票
5 回答
345798 浏览
提问于 2025-04-15 14:57

我不太确定我需要用到lambda表达式,还是别的什么。不过,我有以下需求:

我有一个数组 array = [1,2,3,4,5]。我想把这个数组放到另一个数组里,比如说。但是我想把这一切都写成一行代码。

for item in array:
    array2.append(item)

我知道其实可以通过遍历这些元素来做到这一点,并且可以写成一行。但是我在网上查资料和看手册时并没有找到太多帮助……如果你能给我一点提示,或者告诉我这个东西叫什么,我会非常感激。

更新:假设这样写: array2 = 某个很酷的表达式,它会把第一个数组里的所有数据都拿到

(这个例子并不真实。我只是想遍历不同的数据块,但这是我能想到的最好方式)

5 个回答

5

如果你只是想把一个数组里的东西加到另一个数组里,其实可以直接用'+'这个符号来做到这一点,已经被特别处理过了:

a1 = [1,2,3,4,5]
a2 = [6,7,8,9]
a1 + a2
--> [1, 2, 3, 4, 5, 6, 7, 8, 9]
36
for item in array: array2.append (item)
array2 += array

或者,在这种情况下:

153

你要找的关键词是 列表推导式

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

撰写回答