Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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 如何从两个列表中删除某些特定独立元素的元素?_Python_List - Fatal编程技术网

Python 如何从两个列表中删除某些特定独立元素的元素?

Python 如何从两个列表中删除某些特定独立元素的元素?,python,list,Python,List,我有两张名单 dt_dates= [datetime.datetime(2013, 4, 6, 0, 0), datetime.datetime(2013, 5, 4, 0, 0), datetime.datetime(2013, 6, 26, 0, 0), datetime.datetime(2013, 7, 26, 0, 0), datetime.datetime(2013, 9, 5, 0, 0), datetime.datetime(2013, 10, 7, 0, 0), datetim

我有两张名单

dt_dates= [datetime.datetime(2013, 4, 6, 0, 0), datetime.datetime(2013, 5, 4, 0, 0), datetime.datetime(2013, 6, 26, 0, 0), datetime.datetime(2013, 7, 26, 0, 0), datetime.datetime(2013, 9, 5, 0, 0), datetime.datetime(2013, 10, 7, 0, 0), datetime.datetime(2013, 10, 12, 0, 0), datetime.datetime(2014, 4, 12, 0, 0), datetime.datetime(2014, 5, 10, 0, 0), datetime.datetime(2014, 6, 12, 0, 0), datetime.datetime(2014, 7, 19, 0, 0), datetime.datetime(2014, 8, 15, 0, 0), datetime.datetime(2014, 9, 17, 0, 0), datetime.datetime(2015, 4, 21, 0, 0), datetime.datetime(2015, 5, 28, 0, 0), datetime.datetime(2015, 6, 26, 0, 0)]

param=['14', '8', '24', '21.5', '28.5', '9', '9.5', '14.5', '5.5', '21', '19', '25', '25', '18', '12', '32']
我有一个根据结束日期和开始日期过滤列表的代码。假设用户输入的日期范围为2014年1月1日至2014年12月31日,则我需要该范围内的所有日期以及剩余日期的参数

dt_dates_filtered= [datetime.datetime(2014, 4, 12, 0, 0), datetime.datetime(2014, 5, 10, 0, 0), datetime.datetime(2014, 6, 12, 0, 0), datetime.datetime(2014, 7, 19, 0, 0), datetime.datetime(2014, 8, 15, 0, 0), datetime.datetime(2014, 9, 17, 0, 0)]
是期望的输出

parameters_filtered=['14.5', '5.5', '21', '19', '25', '25']
我写了代码:

for i,v in enumerate (dt_dates):
    if t1[i]:
        filtered_parameter.append(param[i])

t1是开始日期和结束日期之间的日期,如果这样做是错误的,则应将这两个日期一起迭代,并创建所需的列表

您可以为此使用
zip
功能

范例-

dt_dates= [datetime.datetime(2013, 4, 6, 0, 0), datetime.datetime(2013, 5, 4, 0, 0), datetime.datetime(2013, 6, 26, 0, 0), datetime.datetime(2013, 7, 26, 0, 0), datetime.datetime(2013, 9, 5, 0, 0), datetime.datetime(2013, 10, 7, 0, 0), datetime.datetime(2013, 10, 12, 0, 0), datetime.datetime(2014, 4, 12, 0, 0), datetime.datetime(2014, 5, 10, 0, 0), datetime.datetime(2014, 6, 12, 0, 0), datetime.datetime(2014, 7, 19, 0, 0), datetime.datetime(2014, 8, 15, 0, 0), datetime.datetime(2014, 9, 17, 0, 0), datetime.datetime(2015, 4, 21, 0, 0), datetime.datetime(2015, 5, 28, 0, 0), datetime.datetime(2015, 6, 26, 0, 0)]
param=['14', '8', '24', '21.5', '28.5', '9', '9.5', '14.5', '5.5', '21', '19', '25', '25', '18', '12', '32']

dt_dates_filtered= []
parameters_filtered=[]

start_date = datetime.datetime(2014,1,1,0,0,0)
end_date = datetime.datetime(2014,12,31,0,0,0)

for x in zip(dt_dates, param):
    if start_date < x[0] < end_date:
            dt_dates_filtered.append(x[0])
            parameters_filtered.append(x[1])

dt_dates_filtered
>>> [datetime.datetime(2014, 4, 12, 0, 0), datetime.datetime(2014, 5, 10, 0, 0), datetime.datetime(2014, 6, 12, 0, 0), datetime.datetime(2014, 7, 19, 0, 0), datetime.datetime(2014, 8, 15, 0, 0), datetime.datetime(2014, 9, 17, 0, 0)]
parameters_filtered
>>> ['14.5', '5.5', '21', '19', '25', '25']
dtu dates=[datetime.datetime(2013,4,6,0,0),datetime.datetime(2013,5,4,0,0),datetime.datetime(2013,6,26,0,0),datetime.datetime(2013,7,26,0,0),datetime.datetime(2013,9,5,0,0),datetime.datetime(2013,10,7,0,0),datetime.datetime.datetime(2013,10,12,0),datetime.datetime(2014,4,12,0),datetime.datetime(2014,5,10,0,0),datetime.datetime(2014,6,12,0,0),datetime.datetime(2014,7,19,0,0),datetime.datetime(2014,8,15,0,0),datetime.datetime(2014,9,17,0,0),datetime.datetime(2015,4,21,0,0),datetime.datetime(2015,5,28,0,0),datetime.datetime.datetime(2015,6,26,0)]
参数=['14','8','24','21.5','28.5','9','9.5','14.5','5.5','21','19','25','25','18','12','32']
dt_dates_filtered=[]
参数_filtered=[]
开始日期=datetime.datetime(2014,1,1,0,0,0)
结束日期=日期时间。日期时间(2014,12,31,0,0,0)
对于邮政编码中的x(dt_日期,参数):
如果开始日期>>[datetime.datetime(2014,4,12,0,0),datetime.datetime(2014,5,10,0,0),datetime.datetime(2014,6,12,0,0),datetime.datetime(2014,7,19,0,0),datetime.datetime(2014,8,15,0,0),datetime.datetime(2014,9,17,0,0)]
过滤参数
>>> ['14.5', '5.5', '21', '19', '25', '25']

你应该发布你尝试过的任何东西,因此这不是一个代码编写服务。如果你在某个方面遇到困难,我们可以帮助你。我已经编写了一个代码:对于枚举中的I,v(dt_日期):if t1[I]:r1.append(r[I]),但它并没有完成所需的值done..你现在能做吗?列表t1的元素ie t1=[datetime.datetime(2014,4,12,0,0),datetime.datetime(2014,5,10,0,0),datetime.datetime(2014,6,12,0,0),datetime.datetime(2014,7,19,0,0),datetime.datetime(2014,8,15,0,0),datetime.datetime(2014,9,17,0,0)]现在看起来还好吗?