Python 如何将一行代码转换为多行?

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

我试图完成一个Python挑战,其中创建一个函数,该函数接受一个单词,如果该单词有两个连续的相同字母,则返回True。解决挑战后,我正在寻找其他解决方案,并发现:

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
的情况。