Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python列表理解和list.remove()_Python_List_List Comprehension - Fatal编程技术网

Python列表理解和list.remove()

Python列表理解和list.remove(),python,list,list-comprehension,Python,List,List Comprehension,列表按日期发送信号存储元组,每个元组包含15个数字。对于signals_by_date中的每个元组,我想删除不满足某些条件的数字。出于某种原因,无论我在列表理解中设置了什么约束,我总是在每个元组中保留7个数字。在下面的代码示例中,所有数字都小于3,因此我希望每个元组都是空的。我做错了什么?非常感谢 signals_by_date = [] for i in range(0, 1): temp_signals = [] for symbol in s

列表按日期发送信号存储元组,每个元组包含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]
按日期发送信号=[]
对于范围(0,1)中的i:
温度信号=[]
对于符号中的符号:
对于信号中的信号,按符号[symbol]:
温度信号附加(信号[i]-1)
按日期添加信号(临时信号)
[按日期[i]发送的信号。如果v<3,则在按日期[i]发送的信号中删除v的(v)]

大概,当您删除每个项目时,您正在移动列表中的项目,以便跳过每一个项目


总的来说,我认为清单理解的目的是从现有清单中累积新的清单,而不是对原始清单中的项目产生副作用;当然,不要改变综合列表的结构。

最后一行应该是:

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

介意详细说明一下吗?我不熟悉编码,完全自学成才,所以我总是欢迎有机会学习更好的实践。谢谢。没有实际数据很难给出准确的答案,但我相当肯定所有这些都可以浓缩成一行。这很有效。谢谢但是,如果我想做这样的事情:signals_by_date[I]=[v for v in signals_by_date[I]如果v=.02]你的条件对每个数字都会求值为false。如果需要介于-0.02和-0.02之间的数字,可以在-0.02的情况下使用:[v代表x中的v]