【问题标题】:python list max() method returns only 3 digit numbers?python list max() 方法只返回 3 位数字?
【发布时间】:2020-02-13 09:53:14
【问题描述】:

我是一个绝对的初学者,使用 python 3.7 和 Visual Studio 代码。 我必须总结一下。和最大。表中的值。因为我得到了一个错误的结果,所以我删除了所有内容,发现 max() 函数只返回一个包含 4 位数字的属性列表中的最高 3 位数字......有什么问题?

strng=("3928\t107\t3406\t123\t2111\t2749\t223\t125\t134\t146\t3875\t1357\t508\t1534\t4002\t4417")

strng1=strng.replace('\t',' ')
mylist=strng1.split(' ')
mx=max(mylist)

print(mylist)
print(mx)

print(mylist)
print(mx)

返回:

['3928', '107', '3406', '123', '2111', '2749', '223', '125', '134', '146', '3875', '1357', '508', '1534', '4002', '4417']
508

我已经搜索并阅读了很多关于 max() 函数的内容,但没有发现任何有用的信息... ps: min() 效果很好

【问题讨论】:

  • 这些是字符串,而不是数字。字符串按字母顺序排序。 'b' 大于 'aaaaaaa''2' 大于 '1111111' 的方式相同。

标签: python python-3.x max


【解决方案1】:

那是因为您的列表中有字符串而不是整数,所以 max 函数没有按预期工作。这是你可以做的:

mylist = [int(x) for x in mylist]
max(mylist)

输出:

4417

【讨论】:

  • 澄清一下:max 函数正常工作,但由于输入类型,它没有按预期工作
【解决方案2】:

如果出于某种原因您想选择具有 int 表示最大值的 string,您可以使用 max 的 key 参数:

string = "3928\t107\t3406\t123\t2111\t2749\t223\t125\t134\t146\t3875\t1357\t508\t1534\t4002\t4417"
mx = max(string.split(), key=int)
print(mx)

注意mx 将是一个字符串。

【讨论】:

    【解决方案3】:

    你需要将它们转换成int,因为strings有不同的排序:

    strng="3928\t107\t3406\t123\t2111\t2749\t223\t125\t134\t146\t3875\t1357\t508\t1534\t4002\t4417"
    
    mylist=strng.split('\t')
    mx=max(int(x) for x in mylist)
    
    print(mylist)
    print(mx)
    

    【讨论】:

      【解决方案4】:

      由于列表未转换为整数列表,因此 max 函数返回字典序上最大的字符串。 尝试添加行

      int_list = [int(i) for i in mylist]
      

      然后打印

      max(int_list)
      

      【讨论】:

        【解决方案5】:

        您必须将字符串列表转换为 int

        strng=("1928\t107\t3406\t123\t2111\t2749\t223\t125\t134\t146\t3875\t1357\t508\t1534\t4002\t4417")
        mylist=strng.split('\t')
        for i in range(0, len(mylist)): 
            mylist[i] = int(mylist[i])
        print(max(mylist))
        
        

        希望以上代码能解决您的问题

        【讨论】:

          猜你喜欢
          • 2016-10-31
          • 1970-01-01
          • 1970-01-01
          • 2015-09-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-07-21
          • 1970-01-01
          相关资源
          最近更新 更多