我试图从原始列表创建一个新列表,但遇到了一些困难。
列表如下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:
是否有更好的方法根据该列表中的单词编写一个列表排序,因为这似乎是唯一的方法
答案 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)