Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python list max()方法只返回3位数字?_Python_Python 3.x_Max - Fatal编程技术网

python list max()方法只返回3位数字?

python list max()方法只返回3位数字?,python,python-3.x,max,Python,Python 3.x,Max,我是一个绝对的初学者,使用Python3.7和VisualStudio代码。 我必须从一个表中总结最小值和最大值。因为我得到了一个错误的结果,所以我把所有的数据都分了条带,发现max函数只返回propper列表中最高的3位数字,还有4位数字。。。怎么了 strng=("3928\t107\t3406\t123\t2111\t2749\t223\t125\t134\t146\t3875\t1357\t508\t1534\t4002\t4417") strng1=strng.replace('\t

我是一个绝对的初学者,使用Python3.7和VisualStudio代码。 我必须从一个表中总结最小值和最大值。因为我得到了一个错误的结果,所以我把所有的数据都分了条带,发现max函数只返回propper列表中最高的3位数字,还有4位数字。。。怎么了

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工作得很好

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

mylist = [int(x) for x in mylist]
max(mylist)
输出:

4417

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

mylist = [int(x) for x in mylist]
max(mylist)
输出:

4417

如果出于某种原因,您希望选择具有int representation max的字符串,则可以使用max的键参数:

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将是一个字符串。

如果出于某种原因,您希望选择具有int表示形式max的字符串,则可以使用max的关键参数:

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将是一个字符串。

您需要将它们转换为int,因为字符串的顺序不同:

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)

您需要将它们转换为int,因为字符串具有不同的顺序:

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)

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

int_list = [int(i) for i in mylist]
然后打印

max(int_list)

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

int_list = [int(i) for i in mylist]
然后打印

max(int_list)

您必须将字符串列表转换为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))


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

您必须将字符串列表转换为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))


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

以澄清:max函数工作正常,但由于输入类型的原因,它不能按预期工作。澄清:max函数工作正常,但由于输入类型的原因,它不能按预期工作。这些是字符串,而不是数字。字符串按字母顺序排序。”b'大于'aaaaaaaaa'的方式与'2'大于'1111111'的方式相同。这些是字符串,而不是数字。字符串按字母顺序排序。”b'大于'AAAAAAAA',与'2'大于'1111111'的方式相同。