max()arg是max(listname)中的空序列

时间:2019-07-07 10:37:37

标签: python-3.x

我编写了一个程序,该程序接受数字列表,并通过在Python中连接数字列表来返回可能的最大数字。但是,当我执行代码时,出现以下错误消息ValueError: max() arg is an empty sequence。这是我的代码:

def create_largest_number(number_list):
    l=list()
    m=max(number_list)
    while(number_list!=0):
        m=max(number_list)
        l.append(m)
        number_list.remove(m)
    return l

number_list=[23,45,67]
largest_number=create_largest_number(number_list)
print(largest_number)

样本输入:23,34,55 样本输出:554323

1 个答案:

答案 0 :(得分:0)

number_list!=0总是正确的,因为number_list是一个列表,而不是一个数字,所以while number_list != 0是一个无限循环,并且假设您要从列表中删除项目在每次迭代中,列表最终将变为空。但是它永远不会变成,因此在下一次迭代中,您的代码将尝试计算max(number_list) == max([]),这是一个错误。

您可以通过以下方式解决它:

while number_list:  # a.k.a. `while len(number_list) > 0:`