簡體   English   中英

Python單行“for”表達式

[英]Python one-line “for” expression

我不確定我是否需要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

(這個例子不是真的。我只是想迭代不同的數據塊,但這是我能想到的最好的)

您要查找的關鍵字是列表推導

>>> x = [1, 2, 3, 4, 5]
>>> y = [2*a for a in x if a % 2 == 1]
>>> print(y)
[2, 6, 10]
for item in array: array2.append (item)

或者,在這種情況下:

array2 += array

如果您要復制數組:

array2 = array[:]

如果你真的只需要將一個數組中的項添加到另一個數組中,那么'+'運算符已經過載了,順便說一下:

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

甚至array2.extend(array1)都可以工作。

使用列表“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]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM