Python 3.x 将下列概率分布从最低熵到最高熵进行排序
我试图从最低到最高排列4个字典列表,我的语法无效(我是生物信息学新手) 我试过内联排序Python 3.x 将下列概率分布从最低熵到最高熵进行排序,python-3.x,Python 3.x,我试图从最低到最高排列4个字典列表,我的语法无效(我是生物信息学新手) 我试过内联排序 lists = sorted(list_dct.items, key=lambda k: k['name']) list_dct = [{'name': 0.5, 0, 0, 0.5}, {'name' : 0.25, 0.25, 0.25, 0.25}, {'name' : 0, 0, 0, 1}, {'name' : 0.25, 0, 0.5, 0.25}]
lists = sorted(list_dct.items, key=lambda k: k['name'])
list_dct = [{'name': 0.5, 0, 0, 0.5},
{'name' : 0.25, 0.25, 0.25, 0.25},
{'name' : 0, 0, 0, 1},
{'name' : 0.25, 0, 0.5, 0.25}]
print(lists)
我收到一条无效的语法消息。。。我应该将列表按最低行到最高行排序您需要正确构建词典。我选择将这些值列为一个列表。然后用列表对它们进行排序:
list_dct = [{'name': [0.5, 0, 0, 0.5]},
{'name' : [0.25, 0.25, 0.25, 0.25]},
{'name' : [0, 0, 0, 1]},
{'name' : [0.25, 0, 0.5, 0.25]}]
sorted([ d.get('name') for d in list_dct ])
1.)在sorted()
函数之前定义list\u dct
,否则会出现语法错误
2.)您希望对整个列表\u dct
进行排序,而不是列表\u dct.items()
3.)定制key=
sorting函数,从我们正在排序的每个项目中选择“name”键
list_dct = [{'name': [0.5, 0, 0, 0.5]},
{'name' : [0.25, 0.25, 0.25, 0.25]},
{'name' : [0, 0, 0, 1]},
{'name' : [0.25, 0, 0.5, 0.25]}]
lists = sorted(list_dct, key=lambda k: k['name'])
from pprint import pprint
pprint(lists)
印刷品:
[{'name': [0, 0, 0, 1]},
{'name': [0.25, 0, 0.5, 0.25]},
{'name': [0.25, 0.25, 0.25, 0.25]},
{'name': [0.5, 0, 0, 0.5]}]