Python 连续值?
正在学习python,但很难告诉函数查找具有相同值的连续位置。当我运行代码时,没有错误,但给出了不正确的输出。关于改变什么的建议Python 连续值?,python,function,Python,Function,正在学习python,但很难告诉函数查找具有相同值的连续位置。当我运行代码时,没有错误,但给出了不正确的输出。关于改变什么的建议 def same_values(xs): same = False for i in (xs): if xs == xs[1:]: same = True else: return same same_values('Misses') # This should return as tru
def same_values(xs):
same = False
for i in (xs):
if xs == xs[1:]:
same = True
else:
return same
same_values('Misses') # This should return as true
因此,您正在列表中查找一个连续的对,如果找到一个,则返回true
def same_values(xs):
for i in range(len(xs)-1):
if xs[i] == xs[i+1]:
return True
return False
>>> same_values('misses')
True
>>> same_values('mises')
False
会给你正确的答案。然而python有一个强大的迭代器代数。这样做的好处是,它可以与迭代器(迭代器通常不支持
len()
)以及列表一起工作:
import itertools as it
def same_values(xs):
a, b = it.tee(xs)
next(b, None)
return any(x == y for x, y in zip(a, b))
此模式在itertools
配方中描述为:
例如,要检查文件中的任何两个连续行是否相同(这不适用于列表
版本):
因此,您正在列表中查找一个连续的对,如果找到一个,则返回true
def same_values(xs):
for i in range(len(xs)-1):
if xs[i] == xs[i+1]:
return True
return False
>>> same_values('misses')
True
>>> same_values('mises')
False
会给你正确的答案。然而python有一个强大的迭代器代数。这样做的好处是,它可以与迭代器(迭代器通常不支持
len()
)以及列表一起工作:
import itertools as it
def same_values(xs):
a, b = it.tee(xs)
next(b, None)
return any(x == y for x, y in zip(a, b))
此模式在itertools
配方中描述为:
例如,要检查文件中的任何两个连续行是否相同(这不适用于列表
版本):
请解释你的代码应该做什么。它需要什么输入?另外,比较是否区分大小写?当然,这将始终返回
False
,但是,xs==xs[1://code>永远不会True
。它应该将[1,2,3,3,5]等整数作为True。它不需要区分大小写。请解释你的代码应该做什么。它需要什么输入?另外,比较是否区分大小写?当然,这将始终返回False
,但是,xs==xs[1://code>永远不会True
。它应该将[1,2,3,3,5]等整数作为True。不需要区分大小写。谢谢你的解释。我不知道迭代器。谢谢你的解释。我不知道迭代器。