Luc*_*ers 1 python zip any python-3.x
我在codingame.com 上玩一些代码冲突,看到了某人的代码,但不太明白。
目标是检查连续字符串中是否有任何双字符。所以字符串“Hello”应该返回True,因为连续的双“l”。但是字符串 "Mama" 应该返回 False,因为字符 "a" 并不在后面。
有人可以解释一下这段代码吗?
w="Hello".lower()
print(str(any(c==k for c,k in zip(w[:-1],w[1:]))).lower())
Run Code Online (Sandbox Code Playgroud)
这是我的代码
w = "Hello"
f = False
for i, c in enumerate(w):
if i + 1 < len(w):
if c.lower() == w[i+1].lower():
print("true")
f = True
break
if not f: print("false")
Run Code Online (Sandbox Code Playgroud)
zip创建像此表中的 4 列这样的对。(第一个和最后一个表列不成对,它们不算数):
h e l l o - # original string in lower case
- h e l l o # same string shifted one position
-----------------
- F F T F - # equal? (False/True)
Run Code Online (Sandbox Code Playgroud)
any返回True如果发现有什么真正的(布尔意义上的)。否则返回False。在这里它True在看到第三个值后返回。