我在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
。