Python按包含列表和值的二维数组中的第一个列表排序值
我跟踪一个列表,并且每个集合都有一个百分比支持(百分比值表示频率)。每个支持都绑定到一组。Python按包含列表和值的二维数组中的第一个列表排序值
X:
[('C', 'A'), 66.667]
[('T', 'A'), 50.0]
[('C', 'D'), 66.667]
[('C', 'T'), 66.667]
[('C', 'W'), 83.333]
[('A', 'W'), 66.667]
[('W', 'T'), 50.0]
[('W', 'D'), 50.0]
我想排序的数组,忽略支撑,使得其看起来像这样:
[('A', 'C'), 66.667]
[('A', 'T'), 50.0]
[('A', 'W'), 66.667]
[('C', 'D'), 66.667]
[('C', 'T'), 66.667]
[('C', 'W'), 83.333]
[('D', 'W'), 50.0]
[('T', 'W'), 50.0]
排序集合在X [0],则整个第一列
排序的元组,然后排序列表:
lst = sorted([[tuple(sorted(x)), y] for x, y in lst], key=lambda x: x[0])
print(lst)
[[('A', 'C'), 66.667],
[('A', 'T'), 50.0],
[('A', 'W'), 66.667],
[('C', 'D'), 66.667],
[('C', 'T'), 66.667],
[('C', 'W'), 83.333],
[('D', 'W'), 50.0],
[('T', 'W'), 50.0]]
您不需要为外部呼叫指定'sorted'键。 –
@ZachGates哦,是的,我喜欢。我不想假设元组永远不会相连,在这种情况下,无键排序会使用百分比打破关系,这不是他们想要的。 –
够公平的。在再次阅读问题后,OP确实表示忽略百分比。好答案。 –
检查出['sorted'](https://docs.python.org/3/library/functions.html#sorted)内置函数。 –