【发布时间】:2022-01-19 07:22:34
【问题描述】:
我在运行 python 程序时遇到问题。目的是确定序列1, 2, 3 是否在ints 的给定列表内。当它运行两个测试时,代码可以工作。但是,第三次测试失败了,我不知道为什么。
我的代码是:
def has123(nums):
s = ''.join(str(i) for i in sorted(nums))
if '123' in s:
return True
else:
return False
当通过参数[1, 1, 2, 3, 1] 和[1, 1, 2, 4, 1] 传递时,它返回正确的输出,但不是[1, 1, 2, 1, 2, 3]。
【问题讨论】:
-
是的,因为当您对列表进行排序时,您的
[1, 1, 2, 1, 2, 3]变为 [1,1,1,2,2,3]。所以没有123 -
for i in sorted(list(set(nums))) -
return '1,2,3' in ','.join((str(n) for n in nums))
-
@Adam 看起来你可以自己找到一个反例。
-
定义“在范围内”。
标签: python list sequence traversal