【问题标题】:Sorting strings in python doesnt work [closed]在python中对字符串进行排序不起作用[关闭]
【发布时间】: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


【解决方案1】:

sorted(['a','2%20q'], key=lambda x: 0 if x == '2%20q' else 1)

【讨论】:

  • 它确实显示了如何解决这个问题。没有提供所需排序方法的数据。
  • 同意,我们应该将这种新的排序方法命名为什么?
  • '让自己变得不可或缺'排序。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-08
  • 1970-01-01
  • 2011-09-04
  • 2021-02-16
  • 1970-01-01
相关资源
最近更新 更多