gpt4 book ai didi

Python - 在字典中查找顶部项目

转载 作者:行者123 更新时间:2023-11-28 16:20:11 24 4
gpt4 key购买 nike

我想在下面的逐项数据结构中检索 top track:

tracks = {
u'Harry Patch (In Memory Of)': {u'playlist1': 4.0},
u'Fake Plastic Trees': {u'playlist2': 5.0, u'playlist1': 6.0},
u'The Man Who Sold The World': {u'playlist1': 3.0},
u'Running Up That Hill': {u'playlist1': 2.0},
u"Jeep's Blues": {u'playlist3': 1.0, u'playlist4':9.0},
u'Stella By Starlight': {u'playlist3': 1.0},
u'Codex': {u'playlist1': 3.0}
}

逻辑如下:

1 - 查找属于多个播放列表的轨道。

2 - 在这些结果中,找到该轨道的最高排名。 (添加个人播放列表排名)

我部分地看到了这个片段:

tracks = [i[0] for i in radio.items()]
playlists = [i[1] for i in radio.items()]

ranking = []

for p in playlists:
name = p.keys()
rank = p.values()
if len(rank) >= 2:
ranks = sum(r for r in rank)
ranking.append(ranks)

print max(ranking)

打印:11.0,对应于所需的输出 u'Fake Plastic Trees

但是我忘记了轨道名称的轨道(请原谅我的双关语)。

如何使用上面的代码检索轨道名称?

附言。有没有更简单的方法来实现我想要的结果?

最佳答案

默认情况下,在使用 for 循环时,您只会迭代字典的值。您也可以使用 iteritems() 获取 key :

tracks = [i[0] for i in radio.items()]
playlists = [i[1] for i in radio.items()]

ranking = []
songs = []

for song, p in playlists.iteritems():
name = p.keys()
rank = p.values()
if len(rank) >= 2:
ranks = sum(r for r in rank)
ranking.append(ranks)
songs.append(song)

import numpy as np
song_index = np.argmax(ranking)
print songs[song_index]

关于Python - 在字典中查找顶部项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40878052/

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