Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何根据内部列表的排序索引对字符列表进行排序?_Python_String_List - Fatal编程技术网

Python 如何根据内部列表的排序索引对字符列表进行排序?

Python 如何根据内部列表的排序索引对字符列表进行排序?,python,string,list,Python,String,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', '

我想对列表进行排序

以下是我的列表输入列表:

[('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')]

这将使用您的元组重建列表,现在已在内部排序,并对这些元组执行排序。

您可以尝试以下操作:

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))))

啊,你的意思是你也想对包含的元组进行排序?你确定这是列表的语法吗?输出显示内部元组也需要排序。另外,请分享你自己解决问题的尝试和你的研究。嗯,我认为你使用了列表理解,并且很高兴,现在我看到您使用生成器表达式,现在我不高兴…:-)对于某些操作,列表理解会快得多,因为结果无论如何都会转换为列表。除了
str之外,
sorted
。join
就是其中之一。如果您想更快:
排序(map(iteration\u utilities.chained(sorted,tuple),lst))
(需要一个,但只是作为一个“很好的信息”:D)哦,对了:
排序
需要立即提供完整的列表!会修好的!我自己用
str.join
评论所有帖子。我不习惯这个双括号的东西。总有一天要做点什么。您的这个
sorted(map
解决方案也需要重建列表,因为
map
返回一个迭代器。但是
iteration\u实用程序。chained(sorted,tuple)
不需要经过中间的任何python层,因为所有3个函数都是用C实现的。这提供了比丢失更快的速度。
[('A', 'C'), ('A', 'H'), ('A', 'K'), ('C', 'H'), ('C', 'K'), ('H', 'K')]