【问题标题】:Resolving numbers of int iterables解析 int 可迭代对象的数量
【发布时间】:2021-07-12 01:05:29
【问题描述】:

如何解决我的代码的以下错误,尝试根据奇数索引对元素进行排序:

numbers = [2,3,4,7,2,3,1,8,6]
numbers.sort(key=lambda n:n[1])
print(numbers)

Error:
---------------------------------------------------------------------------

<ipython-input-26-a95756aeb06b> in <lambda>(n)
      1 numbers = [2,3,4,7,2,3,1,8,6]
----> 2 numbers.sort(key=lambda n:n[1])
      3 print(numbers)

TypeError: 'int' object is not subscriptable

【问题讨论】:

  • 你的预期输出是什么?
  • "试图根据奇数索引对元素进行排序" 这是什么意思?你的元素是整数;他们没有“索引”。
  • 发生这种情况是因为您将列表中的数字传递给 lambda,然后指示 lamda 返回 number[1],这是仅在可迭代对象上支持的操作,而不在 ints 上。

标签: python list sorting object lambda


【解决方案1】:

你想要这样的东西吗?

>>> numbers = [2,3,4,7,2,3,1,8,6]
>>> numbers.sort() # Sort
>>> numbers = numbers[::2] # Odd
>>> print(numbers)
[1, 2, 3, 6, 8]

【讨论】:

    猜你喜欢
    • 2019-04-22
    • 2013-08-02
    • 2012-06-21
    • 1970-01-01
    • 2022-01-20
    • 2020-07-21
    • 1970-01-01
    • 2017-09-11
    相关资源
    最近更新 更多