我需要编写一个函数,该函数接受一个整数nums的列表,如果序列1, 2, 3, ..出现在列表中的某个地方,则返回True。

我的方法:

def list123(nums):
    num = ""
    for i in nums:
        num += i
    if "1,2,3" in num:
        return True
    else:
        return False


它无法正常工作,表明:builtins.TypeError: Can't convert 'int' object to str implicitly

我还想知道是否有更简单的方法,而不是像我一样将列表转换为字符串。

最佳答案

您将在num += i上收到错误消息,因为您正在尝试将1添加到""。相反,请尝试以下操作:

def list123(nums, desired=[1, 2, 3]):
    return str(desired)[1:-1] in str(nums)




>>> list123([1, 2, 3, 4, 5])
True
>>> list123([1, 2, 4, 3, 5])
False
>>> list123([1, 2, 4, 3, 5], desired=[2, 4, 3])
True
>>> list123([5, 1, 2, 7, 3, 1, 2, 3])
True
>>>

10-08 00:37