[英]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.