Python 如何将一行代码转换为多行?
我试图完成一个Python挑战,其中创建一个函数,该函数接受一个单词,如果该单词有两个连续的相同字母,则返回True。解决挑战后,我正在寻找其他解决方案,并发现:Python 如何将一行代码转换为多行?,python,Python,我试图完成一个Python挑战,其中创建一个函数,该函数接受一个单词,如果该单词有两个连续的相同字母,则返回True。解决挑战后,我正在寻找其他解决方案,并发现: def double_letters(word): return any(i*2 in word for i in word) 出于好奇,为了更好地理解代码,我尝试将其扩展为更多的代码行,因此我写了以下内容: def double_letters(word): for i in word: retur
def double_letters(word):
return any(i*2 in word for i in word)
出于好奇,为了更好地理解代码,我尝试将其扩展为更多的代码行,因此我写了以下内容:
def double_letters(word):
for i in word:
return any(i*2 in word)
但是我得到了TypeError:“bool”对象是不可编辑的
为什么这不起作用?应该如何编码?如果要将单行代码分解为等效的多行代码,应该如下所示:
def double_letters(word):
for i in word:
if i*2 in word:
return True
return False
多行代码应为:
def double_letters(word):
for i in word:
if i*2 in word:
return True
else:
return False
根据的文档,它将iterable
作为参数,并且您的行:
any(word中的i*2)
本质上是any(bool)
,bool
在这里表示True
或False
。所以你得到了一个错误
还可以看看Python中的。这类场景非常适合于将
用于else
您应该从学习any()
如何工作开始。顺便说一句,这是一个非常糟糕的双字母
实现,因为它需要二次时间。您忘记了False
的情况。