Python any() 和 zip() 内置函数解释?

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)

VPf*_*PfB 7

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在看到第三个值后返回。