2 回答

TA貢獻(xiàn)1820條經(jīng)驗 獲得超9個贊
您正在使用 for-each 循環(huán)結(jié)構(gòu)。for x in iterable當(dāng)您對可迭代對象執(zhí)行 a 時,x這里不是索引,而是元素本身。因此,當(dāng)您運行 時for d in dates,Python 將返回datetime日期中的對象,而不是索引。
相反,你必須這樣做:
for checkexp in dates:
if checkexp + timedelta(days = 7) < current:
print('Food will expire within a week')
或者,如果您想要索引和元素,則可以使用該enumerate函數(shù)。
for i, checkexp in enumerate(dates):
# You can access the element using either checkexp or dates[i].
if checkexp + timedelta(days = 7) < current:
print('Food will expire within a week')
如果必須使用索引,則可以使用該len函數(shù)來獲取可迭代的長度,并像在 C 中一樣訪問列表元素。但這不是 Pythonic。
for i in range(len(dates)):
if dates[i] + timedelta(days = 7) < current:
print('Food will expire within a week')

TA貢獻(xiàn)1875條經(jīng)驗 獲得超5個贊
for checkexp in dates:
#checkexp = dates[d]
if checkexp + timedelta(days = 7) < current:
print('Food will expire within a week')
添加回答
舉報