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)]现在看起来还好吗?