我正在尝试在特定日期分割日期列表(格式为YYYY-MM-DD) ,并接受所有包含和之后的条目。
desired_date = '2018-11-01'
my_list = ['2018-10-29', '2018-10-30', '2018-10-31', '2018-11-01', '2018-11-02', '2018-11-03', '2018-11-04']
我想做的是拆分出现'2018-11-01'
的列表,并像这样获得一个缩短的列表:
shortened_list = ['2018-11-01', '2018-11-02', '2018-11-03', '2018-11-04']
不胜感激任何指点!谢谢!
答案 0 :(得分:4)
您可以使用index()
获得所需元素的索引,然后只需使用列表切片:
desired_date = '2018-11-01'
my_list = ['2018-10-29', '2018-10-30', '2018-10-31', '2018-11-01', '2018-11-02', '2018-11-03', '2018-11-04']
print(my_list[my_list.index(desired_date):])
输出:
C:\Users\Desktop>py x.py
['2018-11-01', '2018-11-02', '2018-11-03', '2018-11-04']
答案 1 :(得分:0)
我想您必须首先将数组中的元素解析为日期格式,然后在数组上循环以提取所需的日期范围。 与上一个答案相同
day_dt = '2018-11-01'
my_list = ['2018-10-29', '2018-10-30', '2018-10-31', '2018-11-01', '2018-11-02', '2018-11-03', '2018-11-04']
dt_list = [x for x in my_list if x >= day_dt]
print(dt_list)
如果您需要使用日期进行过滤
datetime.strptime(my_list[i], '%Y-%m-%d')
答案 2 :(得分:0)
desired_date
不在my_list
中的另一种改进:
desired_date = '2018-11-01'
my_list = ['2018-10-29', '2018-10-30', '2018-10-31', '2018-11-01', '2018-11-02', '2018-11-03', '2018-11-04']
shortened_list = [x for x in my_list if x >= desired_date]
print(shortened_list)
输出
['2018-11-01', '2018-11-02', '2018-11-03', '2018-11-04']
我在答案中发布是因为注释字段不允许编写正确的代码