如何使用for循环访问python中字典中的元素?

时间:2018-02-04 22:11:33

标签: python dictionary

我需要从字典中提取信息,但无法确定如何访问数据。

我有:

from datetime import timedelta, date
from dateutil.relativedelta import relativedelta
import numpy as np

start_date = date(2017,1,1);
final_date = date.today() + relativedelta(months=2);

def datarange(start_date, final_date):
    for n in range((final_date-start_date).days+1):
        yield start_date + timedelta(n)

PayDayTable = {i:np.zeros(5) for i in datarange(start_date, final_date)}

我能做到:

print(PayDayTable)
print(PayDayTable[date.today()])
print(PayDayTable[date.today()][0])
print(PayDayTable[date.today()][1:3])

但是当我这样做时:

for item in PayDayTable:
    print(item)

如何通过使用PayDayTable dictionary迭代项目来访问for loop的值?

编辑:

我在使用Python 3.6时正在寻找Python 2文档。

所以不要做类似的事情:

for item in PayDayTable.iteritems():
    pass

我了解到我应该这样做:

for item in PayDayTable.items():
    print(item[1][0])

1 个答案:

答案 0 :(得分:2)

type(item)datetime.date,它不可迭代(你不能执行item [0])。 item中的每个元素(代码中的PayDayTable)都是日期。

如果您需要日期 - 只需使用PayDayTable的元素即可。但是,如果您想通过使用value迭代字典来获取与date密钥相关联的for loop,那么您可以执行以下操作:

for item in PayDayTable:
    print(PayDayTable[item])