2017-07-18 123 views
0
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日。 –

回答

5

你可以寫這從列表中得到所有其他日期(指數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

謝謝!我會試試這個。 –

1
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

相關問題