【发布时间】:2013-03-13 17:35:28
【问题描述】:
我正在尝试对这个列表进行排序 ['a', '2%20q'] 我希望看到 ['2%20q', 'a'] 但下面的代码会生成 ['a', '2%20q'](初始列表保持不变)
sorted(['a', '2%20q']) // output: ['a', '2%20q']
【问题讨论】:
-
当我在 python 3.3 上运行代码时,它输出
sorted(['a', '2%20q']) ['2%20q', 'a'] -
我在 2.7.3 中也得到了正确的输出 (
['2%20q', 'a'])。 -
不可重复:
>>> sorted(['a', '2%20q']) ['2%20q', 'a'] -
我注意到您没有发布实际的成绩单。这正是你所做的,还是你有一个包含这些元素的列表——称之为
x——然后你做了sorted(x),然后查看x,看看它是一样的吗? [重点是sorted(x)不会改变x--x.sort()会改变 -- 所以如果你做了sorted(x)并期望x改变,我明白你为什么会感到困惑。]跨度> -
我注意到你写了 "(初始列表保持不变)"。这就是
sorted正在做的事情,它创建列表的排序副本 (documentation)。如果要就地修改列表,则必须调用其.sort方法。
标签: python string list sorting sorted