繁体   English   中英

如何通过内部列表的排序索引对字符列表进行排序?

[英]How to sort a list of list of characters by sorted index of inner list?

我想对列表进行排序。

这是我输入的清单清单:

[('H', 'A'), ('H', 'C'), ('H', 'K'), ('A', 'C'), ('A', 'K'), ('C', 'K')]

我希望输出像这样

[('A', 'C'), ('A', 'H'), ('A', 'K'), ('C', 'H'), ('C', 'K'), ('H', 'K')]

您的输出表明您需要对元组和最终列表中的两个元素进行排序。 所以做:

l = [('H', 'A'), ('H', 'C'), ('H', 'K'), ('A', 'C'), ('A', 'K'), ('C', 'K')]

print(sorted([tuple(sorted(x)) for x in l]))

结果:

[('A', 'C'), ('A', 'H'), ('A', 'K'), ('C', 'H'), ('C', 'K'), ('H', 'K')]

这将使用您的元组重建列表,现在将其排序在其中,并对这些元组执行sort

您可以尝试这样的事情:

data=[('H', 'A'), ('H', 'C'), ('H', 'K'), ('A', 'C'), ('A', 'K'), ('C', 'K')]


print(sorted(list(map(lambda i:(i[0],i[1]) if i[0]<i[1] else (i[1],i[0]),data))))

输出:

[('A', 'C'), ('A', 'H'), ('A', 'K'), ('C', 'H'), ('C', 'K'), ('H', 'K')]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM