簡體   English   中英

將值插入同一個列表而不是新的

[英]inserting the value in the same list rather than in a new

arr = [-1, -1, 0, 1, 1]

for x in arr:
    if x > 0:
        list = []
        list.append(x)
        print(list)

output 是:[1] [1] 但我希望 output 為:[1,1] 我希望它插入從 arr 到列表的每個正值。

您必須在for循環之前定義您的列表,否則,您的列表將在每次迭代時分配一個空列表

arr = [-1, -1, 0, 1, 1]

my_list = []
for x in arr:
    if x > 0:
        my_list.append(x)
        print(my_list)

output:

[1]
[1, 1]

正如 kederrac 所說,您在每次迭代中都創建一個新的空列表,您必須在循環之外定義列表。
此外,“list”是 Python 中的關鍵字,永遠不要將變量命名為關鍵字,這是一件很糟糕的事情,即使它現在運行良好。 這種做法終有一天會咬到你。
完成任務的更優雅的方法是使用理解:

arr = [-1, -1, 0, 1, 1]
myList = [e for e in arr if e > 0]

暫無
暫無

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

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