簡體   English   中英

Python列表理解和list.remove()

[英]Python list comprehension and list.remove()

列表signals_by_date存儲元組,每個元組包含15個數字。 對於signals_by_date中的每個元組,我想刪除不滿足特定條件的數字。 出於某種原因,無論我在列表理解中施加什么約束,每個元組中總是剩下7個數字。 在下面的代碼示例中,所有數字均小於3,因此我希望每個元組都為空。 我究竟做錯了什么? 非常感謝。

    signals_by_date = []
    for i in range(0, 1):
        temp_signals = []
        for symbol in symbols:        
            for signal in signals_by_symbol[symbol]:
            temp_signals.append(signal[i]-1)
        signals_by_date.append(temp_signals)
        [signals_by_date[i].remove(v) for v in signals_by_date[i] if v < 3]

最后一行應為:

signals_by_date[i] = [v for v in signals_by_date[i] if v >= 3]

大概,在刪除每個項目時,您正在移動列表中的項目,從而跳過了第二個項目。

總的來說,我認為清單理解是為了從現有清單中獲得新清單,而不是對原始清單中的項目產生副作用。 並且肯定不會更改理解列表的結構。

暫無
暫無

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

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