排序字母数字列表

时间:2013-08-16 10:23:37

标签: list sorting

我正在尝试按每个元素中的数字对此列表进行排序。

revision_type = [('100K Revision', '50K Revision', '25K Revision')]

这是我到目前为止所提出的,但不断收到错误:

AttributeError: 'tuple' object has no attribute 'partition'
revision_sorted = sorted(revision_type, key=lambda s: (int(s.partition(' ')[0][:-1])))

我希望列表revision_sorted为:

[('25K Revision', '50K Revision', '100K Revision')]
几个小时以来一直在搞乱这个问题,非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我认为你很亲密。 revision_type是一个包含元组的列表。因此,您必须提取第一个元素并传递给已排序的函数。

revision_type = [('100K Revision', '50K Revision', '25K Revision')]
revision_sorted = [tuple(sorted(revision_type[0], key=lambda s: (int(s.partition(' ')[0][:-1]))))]
print revision_sorted

<强>输出

[('25K Revision', '50K Revision', '100K Revision')]