我正在为字典实现我的自定义迭代器,但我得到的只是键而不是项目。我的代码是:
initial_song_data = {
"blue-da-ba-dee-sample.ogg": {
"album": "Rush of Blood to the Head",
"path": "blue-da-ba-dee-sample.ogg",
"name": "blue da ba dee sample",
"artists": ["Coldplay", "Nirvana"]
},
"to-bring-you-my-love.ogg": {
"album": "Rush of Blood to the Head",
"path": "to-bring-you-my-love.ogg",
"name": "to bring you my love",
"artists": ["Nirvana", "U2"]
}}
iter_obj = iter(initial_song_data)
while True:
try:
element = next(iter_obj)
print(element.values())
except StopIteration:
break
for song in initial_song_data:
print(song)
输出: 蓝色-DA-BA-DEE-sample.ogg
到外带你 - 我 - love.ogg
我在这里缺少什么?请帮忙。
答案 0 :(得分:0)
我不确定所需的输出,但是如果用print(element.values())
替换print(initial_song_data[element].values())
会产生它吗? (或print(initial_song_data[element].items())
,取决于你想要得到的东西。)
顺便说一句,当我运行你的代码时(使用exec
内置函数交互式),我得到AttributeError: 'str' object has no attribute 'values'
。
答案 1 :(得分:0)
iter函数返回传递参数的迭代器对象。字典的迭代器遍历字典的键。这样就可以按预期工作了。