如何对python中具有不同大小和元素大小的元组列表进行排序

2024-03-28 13:22:33 发布

您现在位置:Python中文网/ 问答频道 /正文

有人能帮我在Python中对元组进行排序吗

({'b', 'c', 'a'}, {('b', 'c'), ('a', 'b')})

预期产出:

({'a', 'b', 'c'}, {('a', 'b'), ('b', 'c')})

Tags: 排序元组
2条回答

您的标题和示例相互冲突。您应该查阅关于settuplelist的python文档

一些例子:

a_list = ['b', 'c', 'a']
a_tuple = ('b', 'c', 'a')
a_set = {'b', 'c', 'a'}
a_list_of_tuples = [('b', 'c', 'a'), ('b', 'c'), ('a', 'b')]
a_list_of_tuples_and_lists = [('b', 'c', 'a'), [('b', 'c'), ('a', 'b')]]

此示例适用于列表/元组列表和集合/元组的元组,但它返回的是实际的元组列表而不是预期输出示例中提供的集合元组

my_list = [('b', 'c', 'a'), [('b', 'c'), ('a', 'b')]]
print(tuple((sorted(item) for item in my_list)))
-> (['a', 'b', 'c'], [('a', 'b'), ('b', 'c')])

my_tuple = ({'b', 'c', 'a'}, {('b', 'c'), ('a', 'b')})
print(tuple((sorted(item) for item in my_tuple)))
-> (['a', 'b', 'c'], [('a', 'b'), ('b', 'c')])

我假设你说的是一个列表,你想先对每个列表进行排序,然后对整个列表进行排序

您可以按如下方式进行操作:

arr = [['b','c','a'],['b','c'],['a','b']]

for i in arr:
    i.sort()

arr.sort(key=lambda x:x[0])

print(arr) 

[['a', 'b', 'c'], ['a', 'b'], ['b', 'c']]

请记住,如果您有一组集合,那么解决方案将完全不同,反之亦然

相关问题 更多 >