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
答案 0 :(得分:1)
你的python代码不完整(括号丢失)......
其中一个问题是你的循环变量都有相同的名称:item
。
提到的错误来自于y
是一个列表,而您要求的是y.month
。
我将y
重命名为date0
,并使用item0
和item1
标记了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:
)。