Python 如何从列表字典中获取可能的排列列表
我需要从这样的列表字典中得到X,Y,W avg#is X这样的输出Python 如何从列表字典中获取可能的排列列表,python,list,dictionary,permutation,Python,List,Dictionary,Permutation,我需要从这样的列表字典中得到X,Y,W avg#is X这样的输出 dict = { 'X': [65, 86, 54], 'W': [87, 99, 57], 'Y': [83, 82, 84] } 输出应该是值列表中可能的排列具有最高平均值的值,以及实现这一点所需的键的顺序,每个键只能使用一次 我尝试了一些解决方案,但没有任何效果 这是我到目前为止得到的 list = [] for element in zip(dict, *dict.values()): l
dict = {
'X': [65, 86, 54],
'W': [87, 99, 57],
'Y': [83, 82, 84]
}
输出应该是值列表中可能的排列具有最高平均值的值,以及实现这一点所需的键的顺序,每个键只能使用一次
我尝试了一些解决方案,但没有任何效果
这是我到目前为止得到的
list = []
for element in zip(dict, *dict.values()):
list.append(element)
这只是创建了一个列表列表,其中键是列表的开始,后面是每个值中的所有数字,作为列表的新条目,例如:
十、 65,86,54
现在我需要找到三个键:值对的每个可能排列,其中每个值中的列表组合起来,以找到平均值最高的路由,如87、86、84
dictt = {
'X': [65, 86, 54],
'W': [87, 99, 57],
'Y': [83, 82, 84]
}
perm = [max([(key,value) for value in lst],key= lambda i : i[1])for key,lst in dictt.items()]
print(perm)
>>> [('X', 86), ('W', 99), ('Y', 84)]
这一行[(key,value)表示lst中的值])表示dict.items()中的key,lst()
返回一个列表,其中所有值与其键配对,因此
[[('X', 65), ('X', 86), ('X', 54)],
[('W', 87), ('W', 99), ('W', 57)],
[('Y', 83), ('Y', 82), ('Y', 84)]]
然后我使用
max
和key=lambda I:I[1]
通过使用元组中的第二个元素(在本例中为数字)来获取最大数字。告诉我们您尝试了什么?给我们一个输出示例,提供一个示例,看看我已经更新了帖子,很抱歉这是我第一次发布到stackoverflow,希望能奏效。我真的不知道从这里继续到哪里,所以我不能添加太多信息。您需要显示所有可能的排列,还是只提供一个具有最高值排列的列表,以及87、86、84
的最高平均值是多少