如何调用python日期列表中的每个第n个元素?

问题描述:

My Date = 2015-07-30 
      2015-07-31 
      2015-08-03 
      2015-08-04 
      2015-08-05 
      2015-08-06 
      2015-08-07 
      2015-08-10 
      2015-08-11 
      2015-08-12 
      2015-08-13 
      2015-08-14 

如何从这里拨打每第二个约会? 我试过这个,但这不起作用。如何调用python日期列表中的每个第n个元素?

for i in range(0, len(Date), 2): 
     abc = Date[i] 
+2

什么是'MyDate'?一个列表?此外,你对“呼叫”的含义是什么?什么是预期的输出? –

+2

考虑用实际的Python替换你的伪代码。 –

+0

我的日期是一个列表。预计产量如2015-07-31,2015-08-04,2015-08-06等每2日。 –

你可以写这从列表中得到所有其他日期(指数0,2,4,...):

Date[::2] 

要获得的其他日期(指数1,3, ......),你可以这样写:

Date[1::2] 

你可以看一下这个answer的切片表示法的解释。

由于Date是一个列表,你可能会想将它命名dates,以表明它是一个集合:

dates = """2015-07-30 
2015-07-31 
2015-08-03 
2015-08-04 
2015-08-05 
2015-08-06 
2015-08-07 
2015-08-10 
2015-08-11 
2015-08-12 
2015-08-13 
2015-08-14""".split() 
print(dates[::2]) 
# ['2015-07-30', '2015-08-03', '2015-08-05', '2015-08-07', '2015-08-11', '2015-08-13'] 
print(dates[1::2]) 
# ['2015-07-31', '2015-08-04', '2015-08-06', '2015-08-10', '2015-08-12', '2015-08-14'] 
+0

谢谢!我会试试这个。 –

my_dates = ['2015-07-30', '2015-07-31', '2015-08-03', '2015-08-04', '2015-08-05', '2015-08-06', '2015-08-07', '2015-08-10', '2015-08-11', '2015-08-12', '2015-08-13', '2015-08-14'] 

使用list comprehension

print([my_dates[i] for i in range(1, len(my_dates), 2)]) 

输出:

['2015-07-31', '2015-08-04', '2015-08-06', '2015-08-10', '2015-08-12', '2015-08-14'] 

对于上面的示例代码,你可以替换开始指数1和印刷观察:

for i in range(1, len(my_dates), 2): 
    abc = my_dates[i] 
    print(abc) 
+0

谢谢。有用。 –

+0

@ S.A太棒了!我认为其他答案更容易和更高效,但我只是试图修复示例代码中的错误。“快乐编码”。 – 0p3n5ourcE