我需要编写一个函数,该函数接受一个整数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
>>>