gpt4 book ai didi

python - 在字典中创建字典

转载 作者:太空宇宙 更新时间:2023-11-04 11:07:38 25 4
gpt4 key购买 nike

我有一个名为播放列表的字典,以时间戳为键,以歌曲名称和艺术家为值,存储在一个元组中,格式如下:

{datetime.datetime(2019, 11, 4, 20, 2): ('Closer', 'The Chainsmokers'), 
datetime.datetime(2019, 11, 4, 19, 59): ('Piano Man', 'Elton John'),
datetime.datetime(2019, 11, 4, 19, 55): ('Roses', 'The Chainsmokers')}

我试图从这个字典/元组中设置艺术家并将其设置为新字典中的键,值是该艺术家的歌曲及其在字典中出现的频率。示例输出为:

{'Chainsmokers': {'Closer': 3, 'Roses': 1},
'Elton John': {'Piano Man': 2}, … }

到目前为止,这是我的代码:

dictionary = {}
for t in playlist.values():
if t[1] in dictionary:
artist_song[t[1]] += 1
else:
artist_songs[t[1]] = 1
print(dictionary)

但是,这只会返回艺术家作为键,艺术家播放的频率作为值。

在此先感谢您的帮助。

最佳答案

使用 defaultdict它有一个 defaultdict 作为默认值,最后有一个 int 作为嵌套默认值:

from collections import defaultdict

d = defaultdict(lambda: defaultdict(int))

for song, artist in playlist.values():
d[artist][song] += 1

print(d)
# {'The Chainsmokers': {'Closer': 1, 'Roses': 1}), 'Elton John': {'Piano Man': 1})}

非 defaultdict 方法有点冗长,因为我们需要确保字典存在,这是 defaultdict 为我们处理的。

d = {}
for song, artist in playlist.values():
d.setdefault(artist, {})
d[artist].setdefault(song, 0)
d[artist][song] += 1

关于python - 在字典中创建字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59060430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com