我不太清楚这意味着什么。
表示value_dict.items()中的(位置,日期,标题): builtins.AttributeError:'list'对象没有属性'items' 有人可以帮我解决这个问题吗?
def create_date_dict(image_dict):
'''(dict) -> dict
Given an image dictionary, return a new dictionary
where the key is a date and the value is a list
of filenames of images taken on that date.
>>> d = {'image1.jpg': ['UTSC', '2017-11-03','Happy Friday']}
>>> date_d = create_date_dict(d)
>>> date_d == {'2017-11-03': ['image1.jpg']}
True
'''
new_d = {}
for (filenames, value_dict) in image_dict.items():
for (location, date, caption) in value_dict.items():
new_d[date] = {list(filename)}
return new_d
答案 0 :(得分:2)
value_dict
是一个列表。您的第二个for
循环应该看起来像
for location, date, caption in value_dict:
利用可迭代的解包
编辑:
实际上,现在我再看一遍,你根本不需要另一个循环。只是做
location, date, caption = value_dict
编辑2:
我不确定对您遇到的新错误负责的是什么。尝试这个功能,它修复了我在你原来注意到的其他一些事情
from collections import defaultdict
def create_date_dict(image_dict):
d = defaultdict(list)
for image, (loc, date, cap) in image_dict.items():
d[date].append(image)
return d
这使用defaultdict
,它是标准库中的一个方便的dict
子类
编辑4:
没有defaultdict
,这看起来像
def create_date_dict(image_dict):
d = {}
for image, (loc, date, cap) in image_dict.items():
if date in d:
d[date].append(image)
else:
d[date] = [image]
return d