Python查找今天和#x27;s日期和嵌套列表中的日期

Python查找今天和#x27;s日期和嵌套列表中的日期,python,datetime,nested-lists,Python,Datetime,Nested Lists,我有以下嵌套列表: 我想使用导入日期from datetime来帮助查找今天日期与列表中日期之间的差异,如果日期差异大于30天,则打印日期。我尝试了以下方法,但不起作用,我不知道如何修复它 today = date.today() i = 0 for i in stock: stock_date = stock[i][2] some_date = date.fromisoformat(stock_date) days_diff = (today - some_date)

我有以下嵌套列表:

我想使用导入日期from datetime来帮助查找今天日期与列表中日期之间的差异,如果日期差异大于30天,则打印日期。我尝试了以下方法,但不起作用,我不知道如何修复它

today = date.today()
i = 0
for i in stock:
    stock_date = stock[i][2]
    some_date = date.fromisoformat(stock_date)
    days_diff = (today - some_date).days
    if days_diff < 30:
        print('all good')
    else:        
        print(stock[i][0])
    i += 1
today=date.today()
i=0
对于库存中的i:
库存日期=库存[i][2]
some_date=日期。fromisoformat(库存日期)
days_diff=(今天-某些日期)。天
如果日差<30:
打印(“一切正常”)
其他:
打印(库存[i][0])
i+=1

您使用迭代器变量
覆盖计数器
i
,用于库存中的i:
。使用不同的名称

today=date.today()
i=0
库存物品:
库存日期=库存[i][2]
some_date=日期。fromisoformat(库存日期)
days_diff=(今天-某些日期)。天
如果日差<30:
打印(“一切正常”)
其他:
打印(库存[i][0])
i+=1
或者简单地说:

today=date.today()
库存物品:
库存日期=项目[2]
some_date=日期。fromisoformat(库存日期)
days_diff=(今天-某些日期)。天
如果日差<30:
打印(“一切正常”)
其他:
打印(项目[0])

I已经是您的数组元素,不能再次用作整数

from datetime import date
stock = [['3574', 'A+', '2021-03-24'], ['3575', 'O+', '2021-04-03'], ['3576', 'AB-', '2021-04-09'], ['3580', 'AB+', '2021-04-27'], ['3589', 'A+', '2021-05-08'], ['3590', 'B-', '2021-05-11']]

today = date.today()
i = 0
for i in stock:
    stock_date = i[2]
    some_date = date.fromisoformat(stock_date)
    days_diff = (today - some_date).days
    if days_diff < 30:
        print('all good')
    else:        
        print(i[0])
from datetime导入日期
股票=['3574','A+','2021-03-24',['3575','O+','2021-04-03'],['3576','AB-','2021-04-09'],['3580','AB+','2021-04-27'],['3589','A+','2021-05-08'],['3590','B-','2021-05-11']
今天=日期。今天()
i=0
对于库存中的i:
库存日期=i[2]
some_date=日期。fromisoformat(库存日期)
days_diff=(今天-某些日期)。天
如果日差<30:
打印(“一切正常”)
其他:
打印(i[0])

如果您想使用i作为索引,您需要使用整数,并且您正在使用股票。股票是嵌套列表,所以您使用列表元素作为索引。使用将返回如下列表元素数量的函数

for i in range(len(stock)):
stock_date = stock[i][2]
some_date = date.fromisoformat(stock_date)
days_diff = (today - some_date).days
if days_diff < 30:
    print('all good')
else:        
    print(stock[i][0])

i += 1
范围内的i(len(stock)):
库存日期=库存[i][2]
some_date=日期。fromisoformat(库存日期)
days_diff=(今天-某些日期)。天
如果日差<30:
打印(“一切正常”)
其他:
打印(库存[i][0])
i+=1

忘记基本/Fortran循环。Python的
for
循环本质上是关于单步执行序列的<代码>对于i in stock
是正确的模式,尽管变量名很糟糕,但您必须记住,
i
将是
stock
的实际元素之一,而不是索引。