【问题标题】:How to Initialize a sorted array in one line instead of creating the array and then sorting it?如何在一行中初始化排序数组而不是创建数组然后对其进行排序?
【发布时间】:2022-01-18 11:21:33
【问题描述】:

我有如下代码:

print([i if (ord(i)-97)%2 == 0 else i.upper() for i in input()].sort(reverse=True))

这段代码的结果是None,我不明白为什么会这样?

【问题讨论】:

  • sort 总是返回 None。请参阅文档。
  • Python 中的所有内容都必须在一行中是一个常见的误解。这可能听起来很古怪,但请尝试使用 2 行。第一周左右可能会伤害您的眼睛。

标签: python arrays sorting


【解决方案1】:

.sort() 不返回结果。它会对给定的列表进行适当的排序,因此您无法访问它。

相反,您可以使用sorted:

print(sorted([i if (ord(i)-97)%2 == 0 else i.upper() for i in input()], reverse=True))

或在您已分配给名称的列表上致电sort

lst = [i if (ord(i)-97)%2 == 0 else i.upper() for i in input()]
lst.sort(reverse=True)

print(lst)

【讨论】:

  • 非常感谢。很有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-06
  • 2013-12-19
  • 1970-01-01
  • 2021-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多