如何在Python中分解这个列表理解?

2024-07-01 07:27:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我在前面看到了一个关于如何从字符串列表中查找特定单词的字符的问题。它被删除了,我想是因为我再也找不到了。在

例如:

>>>findTheLetters(["hello", "world"], "hold")
>>>True
>>>findTheLetters(["hello", "world"], "holn")
>>>False (because of no "n")

所以我在这里看到了一个帖子,说要像这样使用列表理解:

^{pr2}$

我的问题是,我该如何分解列表理解,以便理解它是如何工作的?我用过简单的(新手)列表理解,但没有这样的。在

我的尝试:

def findTheLetters(myList, myString):
    for word in myList:
        for letter in word:
            #something goes here?
        return letter in myString

这是我得到的最远的。它有时和“主”和“hold”一起使用,但如果我尝试“地狱”或“悲哀”,即使单词列表中有“h”“e”“l”“l”和“w”“o”“e”,它仍然会给我错误的提示。我不确定我需要补充什么才能让它像理解一样工作。在


Tags: 字符串intruehello列表forworld字符
1条回答
网友
1楼 · 发布于 2024-07-01 07:27:17

下面是一个很有教育意义的示例,向您展示该算法在幕后的作用:

def findTheLetters(myList, myString):
    return all((any(letter in word for word in myList)) for letter in myString)


def findTheLetters1(myList, myString):
    res1 = []
    for letter in myString:
        res2 = []
        for word in myList:
            res2.append(letter in word)

        print(letter, res2, any(res2))

        res1.append(any(res2))

    print('-' * 80)
    print(res1, all(res1))
    print('-' * 80)
    return all(res1)

findTheLetters1(["hello", "world"], "hold")
findTheLetters1(["hello", "world"], "holn")

输出:

^{pr2}$

我建议您学习并阅读关于any/all运算符以及嵌套理解列表的内容,以了解执行顺序。在

希望有帮助

相关问题 更多 >

    热门问题