在其他字符串

时间:2017-12-17 17:58:57

标签: python string substring

我试图从原始列表创建一个新列表,但遇到了一些困难。

列表如下list1 = [training, bicycle, working, carrying, bite, eat]

我的名单中的新列表仅用于整理其中包含ing的单词,因此新列表应如下所示[training, working, carrying]

代码如下所示

def ing(lists):
     b = "ing"
     for d in lists:
        if b in d:
            print(d)

        else:
           continue




    return (lists)

当使用list1运行它时,它几乎打印出list1而不是隔离包含ing的单词 问题区域似乎是

          if b in d:

是否有更好的方法根据该列表中的单词编写一个列表排序,因为这似乎是唯一的方法

4 个答案:

答案 0 :(得分:1)

你永远不会制作新的清单,只打印东西

试试这个

list1 = ["training" , "bicycle", "working", "carrying", "bite" , "eat"]
ing = [x for x in list1 if "ing" in x]
print(ing)

或者如果你坚持要有一个功能

def filter_ing(l);
    return [x for x in l if "ing" in x]

答案 1 :(得分:0)

如果你想进行方法调用 - 只需让你的方法返回一个新列表,其中包含符合搜索条件的旧列表元素。

类似的东西:

def ing(lists):
    b = "ing"
    new_list = []
    for d in lists:
        if b in d:
            print(d)
            new_list.append(d)

         else:
             continue



     return new_list

list1 = ['training', 'bicycle', 'working', 'carrying', 'bite', 'eat']
new_list = ing(list1)
print new_list

上面代码的列表输出是:

  

['培训','工作','携带']

使用列表推导工作以及@ cricket_007

显示

答案 2 :(得分:0)

尝试这个(与你的代码相似的新方式)

    def ing(l):
        new=[]
        b="ing"
        for d in l:
            if b in d:
                new.append(d)#I am adding the wording ending with 'ing' to a new list
    #you were missing appending
        print(new)

    l= ['training','bicycle','working','carrying','bite','eat']
    ing(l)#calling_function

你缺少的是你给出的列表不包含字符串。如上所述,将它们放在字符串中使用''或“”。

此外,当你使用return时,应该有一些东西来保持特定的回报。你没有使用过这样的东西。

仍然有任何疑问,请随意通过评论询问。很乐意提供帮助。

答案 3 :(得分:0)

您可以使用正则表达式:

total_sales

输出:

import re
l= ['training','bicycle','working','carrying','bite','eat']
new_l = filter(lambda x:re.findall('ing$', x), l)