2

我尝试运行Python 是否具有用于字符串自然排序的内置函数?,但它给了我以下错误:

File " < stdin >", line 4

convert = lambda text: int(text) if text.isdigit() else text 


SyntaxError: invalid syntax

有人可以帮忙吗?

谢谢...


更新:谢谢大家的回复。我首先将代码集成到自己的脚本中,但收到了错误。然后我刚刚在 Python 交互式窗口(就这一行)上测试了这个 def,它给出了同样的错误。

我正在使用 python/2.6.5。奇怪的是,这段代码在我的另一台计算机(Python 2.6.1)上运行。此代码是否特定于版本?

4

1 回答 1

-1

下面的代码适用于 2.6.x

import re

li = ['elm1', 'elm0', 'Elm18', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13']

def natural_sort(l): 
    convert = lambda text: int(text) if text.isdigit() else text.lower() 
    alphanum_key = lambda key: [ convert(c) for c in re.split('([0-9]+)', key) ] 
    return sorted(l, key = alphanum_key)

print natural_sort(li)

再试一次,复制粘贴。

于 2013-01-27T21:42:09.063 回答