【问题标题】:Max value of list isnt working?列表的最大值不起作用?
【发布时间】:2014-05-02 11:09:09
【问题描述】:

python 为什么要这样做?我正在尝试获取 csv 列的最大值?我使用了自定义函数和内置函数都返回相同的错误结果?我究竟做错了什么?

【问题讨论】:

  • 您正在比较字符串:max(zip(*data)[0], key=int)
  • 您在比较字符串,而不是数字。 "70" 大于 "110"
  • 以后,请将文本复制并粘贴到问题中,而不是提供屏幕截图。它们没有被搜索引擎有用地索引,不能被复制到读者自己的 python 解释器中,等等。

标签: python list csv


【解决方案1】:

您必须以int 而不是str 进行比较。以下将为您提供您想要的:

print max(zip(map(int, data)))[0]

更好

正如@Aशwini चhaudhary 所建议的,

print max(zip(*data)[0], key=int)

【讨论】:

  • 无需创建新列表。
  • @Aशwiniचhaudhary,是的,我看到了你的评论。我可以将其包含在我的答案中吗(除非您打算自己做,否则我会删除我的答案)(PS:这不是代表,我已经封顶了,我只是想给 OP 提供好的答案) .谢谢
  • 是的,您可以将其包含在您的答案中。
  • @Aशwiniचhaudhary,非常非常感谢!
【解决方案2】:

您正在比较字符串而不是数字。因此,最高字符串是字符数最多的字符串,在您的情况下为“7”。结果完全正确。

【讨论】:

    【解决方案3】:
    In [3]: l=["22","33","25","13","44"]
    
    In [4]: print max([int(x) for x in l])
    44
    

    【讨论】:

      猜你喜欢
      • 2015-04-08
      • 2022-08-08
      • 1970-01-01
      • 1970-01-01
      • 2022-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多