【问题标题】:how to remove the elements of some elements of particular indies from both the lists?如何从两个列表中删除特定独立的某些元素的元素?
【发布时间】:2015-07-13 17:15:28
【问题描述】:

我有 2 个列表

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']

我有一个根据结束日期和开始日期过滤列表的代码。假设用户输入了从1/1/201412/31/2014 的日期范围,那么我需要介于该范围和剩余日期参数之间的所有日期。

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 是开始日期和结束日期之间的日期

【问题讨论】:

  • 您应该发布您尝试过的任何内容,所以这不是代码编写服务。如果您遇到问题,我们可以为您提供帮助。
  • 我写了一个代码:for i,v in enumerate (dt_dates): if t1[i]: r1.append(r[i]) 但它没有完成所需的值跨度>
  • 完成了.. 你现在能做吗?
  • 列表t1的元素即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)]
  • 现在看起来还可以吗?

标签: python list


【解决方案1】:

你做错了,你应该一起迭代它们并创建你想要的列表。

您可以为此使用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']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-04
    • 1970-01-01
    • 2022-11-14
    • 1970-01-01
    • 2013-01-13
    • 1970-01-01
    • 1970-01-01
    • 2020-07-23
    相关资源
    最近更新 更多