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



我在codingame.com上玩一些代码冲突游戏,看到了某人的代码,但不太理解。

目标是检查一行中的字符串中是否有双字符。所以字符串";你好"应该返回True;l〃;在一行但是字符串";妈妈"应该返回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创建与该表中的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)

如果any找到任何真值(在布尔意义上(,则返回True。否则返回False。在这里,它在看到第三个值之后返回True

最新更新