繁体   English   中英

如何在 python 中返回带有特定字母的单词

[英]How to return words with specific letter in python

我需要 python 代码的帮助,我是初学者。 我需要返回带有特定字母的单词。 这是我的尝试。 我需要返回包含字母“E”的单词

lib = ["politsei", "mehine","panda","ment","kusi", "treener","leidma", "jooks", "muksid","president"]

def sisend(lib, b):
   print(lib)
     for i in lib:
        print(i)

    if e in lib:
        return lib

这是一个解决方案:

lib = ["politsei", "mehine","panda","ment","kusi", "treener","leidma", "jooks", "muksid", "president"]
for i in lib:
    if 'e' in i:
        print('e in word',i)

请询问您是否有任何问题。

这是一个单行解决方案

lib = ["politsei", "mehine","panda","ment","kusi", "treener","leidma", "jooks", "muksid",
"president"]

print(lib)
print([x for x in lib if 'e' in x])

这是函数式编程和使用过滤器的介绍。 过滤器对列表中的每个 position 使用谓词(即返回 boolean 答案的 function 答案)进行操作。 这个谓词确定我们是否应该将元素保留在列表中的那个 position (我们称之为x )。

因此我们可以像这样使用一个小的 function:

lambda x: 'e' in x

确定我们可以保留哪些单词。

print(list(filter(lambda x: 'e' in x, lib)))

但为什么要停在那里? 我们可以概括一下吗? 现在说我们有一个 function 它适用于'e'为什么不让它适用于我们给它的任何单词?

我们可以通过将现有的 function 与另一个 function 组合来做到这一点:

str_finder = lambda word: print(list(filter(lambda x: word in x, lib)))

现在我可以用任何我想要的词来做:

str_finder("mehine")

您可以为此目的使用filter

lib = ["politsei", "mehine","panda","ment","kusi", "treener","leidma", "jooks", "muksid","president"]

res = list(filter(lambda x:'e' in x, lib))
print(res)

# output ['politsei', 'mehine', 'ment', 'treener', 'leidma', 'president']

在您的代码中,当您遍历列表的每个元素时,您需要检查该元素中不在列表中的单词,如果找到则将其添加到原始列表

lib = ["politsei", "mehine","panda","ment","kusi", "treener","leidma", "jooks", "muksid","president"]

def sisend(lib, b):   
    result  =[]
    for i in lib:       
        if b in i:
            result.append(i)
    return result

print(sisend(lib, 'e'))

# output ['politsei', 'mehine', 'ment', 'treener', 'leidma', 'president']

我的错,如果单词包含字母“E”,那么我需要返回这些单词和另一个我需要打印出来的单词。 我需要反转返回的单词。

lib = [“politsei”、“mehine”、“panda”、“ment”、“kusi”、“treener”、“leidma”、“jooks”、“muksid”、“总统”]

def sisend(lib, b):   

  result  =[]

      for i in lib:       
       if b in i:
        result.append(i)
     return result

   print(sisend(lib, 'e'))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM