以相反的顺序对列表进行排序

新手上路,请多包涵

我有一个列表 a = [‘L’, ‘N’, ’D’]。我想反转 a 中元素的顺序并得到 b = [’D’, ‘N’, ‘L’]。我试过这个:

 a = ['L', 'N', 'D']
b = sorted(a, reverse=True)

但输出是

b= ['N', 'L', 'D']

我在哪里犯了错误?

原文由 m0_as 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 315
2 个回答

您的错误是使用 sorted ,它按元素的顺序重新排列列表并忽略元素曾经所在的位置。而是使用

b = a[::-1]

它以相反的顺序贯穿列表 a 。你也可以使用

b = list(reversed(a))

尽管第一个版本更快。

原文由 Rory Daulton 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果你想使用 sorted(),你可以指定索引是排序的关键:

 b = sorted(a, key=a.index, reverse=True)

原文由 bloodrootfc 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题