我需要从字典中提取信息,但无法确定如何访问数据。
我有:
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])
答案 0 :(得分:2)
type(item)
是datetime.date
,它不可迭代(你不能执行item [0])。 item
中的每个元素(代码中的PayDayTable
)都是日期。
如果您需要日期 - 只需使用PayDayTable
的元素即可。但是,如果您想通过使用value
迭代字典来获取与date
密钥相关联的for loop
,那么您可以执行以下操作:
for item in PayDayTable:
print(PayDayTable[item])