对于以月为条件的日期时间的循环列表

时间:2017-04-27 12:57:48

标签: python-3.x datetime for-loop if-statement error-handling

y=[datetime.datetime,2016,4,27), datetime.datetime,2016,4,26)]
date1=[datetime.datetime,2016,4,28), datetime.datetime,2016,4,27)]

for item in y:
data2=[]
        for item in data1:
            if item.month==y.month and item.day==y.day:
                 data2.append(item.strftime('%d-%b-%y'))

这给出了错误:'list'对象没有属性'month'。 那么如何使用月份作为条件来循环查看日期时间列表?我正在使用Python3

1 个答案:

答案 0 :(得分:1)

你的python代码不完整(括号丢失)......

其中一个问题是你的循环变量都有相同的名称:item

提到的错误来自于y是一个列表,而您要求的是y.month

我将y重命名为date0,并使用item0item1标记了2个必要的循环变量。这应该有效:

from datetime import datetime

date0 = [datetime(2016, 4, 27), datetime(2016, 4, 26)]
date1 = [datetime(2016, 4, 28), datetime(2016, 4, 27)]

ret = []
for item0 in date0:
    for item1 in date1:
        if item0.month == item1.month and item0.day == item1.day:
            ret.append(item0.strftime('%d-%b-%y'))
print(ret)

(如果你也希望年份相等,你可以做if item0 == item1:)。