对深度嵌套的元组进行排序

时间:2013-11-19 13:27:38

标签: python python-3.x iteration tuples

我有一个嵌套元组列表,如下所示:

l = [('apple', ['gala','fuji', 'macintosh']),
('pear', ['seckel','anjou','bosc'])]

我喜欢按字母顺序排列元组的第二项,以便它看起来像:

l2 = [('apple', ['fuji','gala', 'macintosh']),
('pear', ['anjou','bosc','seckel'])]

我知道我可以将sorted(l)应用于它,但我对Python很新,我遇到迭代问题。我怎么能这样做?

2 个答案:

答案 0 :(得分:8)

类似以下内容 - 使用list comp构建新元组...

l = [('apple', ['gala','fuji', 'macintosh']),
('pear', ['seckel','anjou','bosc'])]

l2 = [(k, sorted(v)) for k, v in l]
# [('apple', ['fuji', 'gala', 'macintosh']), ('pear', ['anjou', 'bosc', 'seckel'])]

答案 1 :(得分:5)

您可以使用list.sort()对“就地”进行排序。 这种方法可以为您分配任务,而且您无需触摸按键。

for _,v in l: v.sort()