【问题标题】:zip() not running for a list with float valueszip() 未针对具有浮点值的列表运行
【发布时间】:2021-10-24 00:08:08
【问题描述】:
sorted(zip(all_genres, glob_sums), key = float, reverse=True)[:3]

我需要为我的数据打印前 3 个值,但我不断收到 'float' object is not iterable errorglob_sums 是浮点值列表,all_genres 是相应字符串值的列表。如何按glob_sums 的降序对列表进行排序,然后显示前 3 个值及其对应的名称?

【问题讨论】:

标签: python list sorting


【解决方案1】:

你可以试试

sorted(zip(all_genres, glob_sums), key = lambda (genre,s) : s, reverse=True)[:3]

【讨论】:

  • 我遇到语法错误。
  • 错误是否显示语法错误在哪里?
  • 它在 lamda 之后显示它:s。但我认为由于 glob_sums 不是列表,我得到了错误。这是我使用 for 循环生成的单个值。
【解决方案2】:

sorted 正在尝试将float() 应用于可迭代的每个元素。在您的情况下,每个元素都是("some name", some_value)。如果我们传递一个函数作为键,我们可以深入内部!

sorted(zip(all_genres, glob_sums), key = lambda x: float(x[1]), reverse=True)[:3]

【讨论】:

  • 我仍然不断收到浮动对象不可迭代错误
  • 你能检查一下glob_sums实际上是一个列表还是一个值。
  • 这是一个单一的值。上面的代码有效。谢谢!
猜你喜欢
  • 2011-12-23
  • 1970-01-01
  • 1970-01-01
  • 2018-10-23
  • 2019-12-29
  • 1970-01-01
  • 2016-07-21
  • 1970-01-01
  • 2021-10-04
相关资源
最近更新 更多