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

Python any() and zip() built-in functions explanation?

我在codingame.com玩代码冲突,看到别人的代码,但不是很明白。

目标是检查字符串中是否有连续的双字符。 所以字符串“Hello”应该 return True,因为连续有两个“l”。但是字符串“Mama”应该 return False 因为字符“a”不在彼此后面。

有人可以解释这段代码吗?

w="Hello".lower()
print(str(any(c==k for c,k in zip(w[:-1],w[1:]))).lower())

这是我的代码

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")

zip 像 table 中的 4 列一样创建对。 (第一个和最后一个 table 列不成对,它们不算数):

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)

any returns True 如果发现任何内容为真(在布尔意义上)。否则它 returns False。这里是 returns True 看到第三个值后