如何解决Python:如何从字典中获取最高的键,一旦找到键/值,该键又如何?
嘿,我有字典显示:
Shows = {177.17: ['SELECT * FROM `breaking.bad` '],190.16: ['SELECT * FROM `breaking.bad`'],81.72: ['SELECT * FROM `mad.men`'],74.36: ['SELECT * FROM `game.of.thrones`'],74.37: ['SELECT * FROM `game.of.thrones`']}
如果这些键值出现,这里有一个我要匹配的列表:
list = ['breaking.bad','mad.men','game.of.thrones','the.mandalorian']
当前我要实现的是,一旦列表值与字典中的列表匹配,我将获得这些键的最高值及其值。
到目前为止,我所做的是:
for key,value in Shows.items():
for lst in list:
if lst in value and 'breaking.bad' in value and max(key) :
print(lst)
有什么想法可以帮助我实现目标吗?
解决方法
不是最有效的方法,而是先循环“表”,然后为每个节目获取字典并找到最大值
shows = {177.17: ['SELECT * FROM `breaking.bad` '],190.16: ['SELECT * FROM `breaking.bad`'],81.72: ['SELECT * FROM `mad.men`'],74.36: ['SELECT * FROM `game.of.thrones`'],74.37: ['SELECT * FROM `game.of.thrones`']}
tables = ['breaking.bad','mad.men','game.of.thrones','the.mandalorian']
for table in tables: # don't name variables as list
sub_shows = {key:value for key,value in shows.items() if any(table in v for v in value)}
if sub_shows: # max throws error if list is empty
print(max(sub_shows),table)
输出
190.16 breaking.bad
81.72 mad.men
74.37 game.of.thrones
我质疑仅列出一项的用例,或者为什么在词典中需要SQL查询
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。