如果序列出现在列表中则返回 True
Returning True if a sequence appears in a list
我需要编写一个接受整数列表的函数 nums
和 returns 如果序列 1, 2, 3, ..
出现在列表中的某处则为真。
我的做法:
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
>>>
def list123(nums):
for i in range(0,len(nums)-1):
if nums[i]==1:
if nums[i+1]==2:
if nums[i+2]==3:
return True
return False
nums=[1, 2, 1, 3, 1, 2, 1]
print(list123(nums))
import re
def list123(nums):
s = ''.join(str(x) for x in nums)
if(re.search('123',s) != None):
return True
else:
return False
nums=[1,2,3,4,5]
print(list123(nums))
def arrayCheck(nums):
if 1 in nums and 2 in nums and 3 in nums:
return "YES"
else:
return "NO"
有没有我遗漏的东西,或者可以不用 for 循环以这种方式编写?
def array123(nums):
for i in range(0,len(nums)-2):
if nums[i:i+3]==[1,2,3]:
return True
return False
def array123(nums):
num=''
for i in nums:
num += str(i)
if num.count('1')>=1 and num.count('2')>=1 and num.count('3')>=1:
return True
else :
return False
我需要编写一个接受整数列表的函数 nums
和 returns 如果序列 1, 2, 3, ..
出现在列表中的某处则为真。
我的做法:
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
>>>
def list123(nums):
for i in range(0,len(nums)-1):
if nums[i]==1:
if nums[i+1]==2:
if nums[i+2]==3:
return True
return False
nums=[1, 2, 1, 3, 1, 2, 1]
print(list123(nums))
import re
def list123(nums):
s = ''.join(str(x) for x in nums)
if(re.search('123',s) != None):
return True
else:
return False
nums=[1,2,3,4,5]
print(list123(nums))
def arrayCheck(nums):
if 1 in nums and 2 in nums and 3 in nums:
return "YES"
else:
return "NO"
有没有我遗漏的东西,或者可以不用 for 循环以这种方式编写?
def array123(nums):
for i in range(0,len(nums)-2):
if nums[i:i+3]==[1,2,3]:
return True
return False
def array123(nums):
num=''
for i in nums:
num += str(i)
if num.count('1')>=1 and num.count('2')>=1 and num.count('3')>=1:
return True
else :
return False