在 python 中对列表推导生成的元组进行排序

Sorting tuple genereated by list comprehension in python

我在对列表理解创建的单个元组进行排序时遇到问题。 假设我们有:

words = [(a, b, c) for a in al for b in bl for c in cl]

现在我想对每个元组 (a, b, c) 进行排序:

map(lambda x: sorted(x), words)

这给了我错误:'tuple' 对象不可调用。

我也试过:

for i in range(len(words)):
    out = [words[i][0], words[i][1], words[i][2]]
    print out.sort()

打印一堆 Nones。

我错过了什么? 提前致谢。

您可以在创建过程中对元组进行排序:

words = [sorted((a, b, c)) for a in al for b in bl for c in cl]

请注意,这将为您提供一个列表列表,而不是元组列表,因为 sorted returns 一个列表。如果你真的想要元组,你必须这样做

words = [tuple(sorted((a, b, c))) for a in al for b in bl for c in cl]