如何保留列表中的某些元素?

时间:2019-05-01 13:12:49

标签: python python-3.x

我的列表如下:

['X', 'table', 'product1', 'product2', 'product3', 'product4', 'product5']

在此列表中,我想保留其中仅包含乘积一词的元素,然后删除其余的元素。

输出必须如下所示:

['product1', 'product2', 'product3', 'product4', 'product5']

我想知道如何做到这一点。

7 个答案:

答案 0 :(得分:4)

使用list comprehension并使用in确定字符串product是否为in所评估的项目

l = ['X', 'table', 'product1', 'product2', 'product3', 'product4', 'product5']

print([i for i in l if 'product' in i])
# ['product1', 'product2', 'product3', 'product4', 'product5']

答案 1 :(得分:2)

>>> initial_list = ['X', 'table', 'product1', 'product2', 'product3', 'product4', 'product5']
>>> product_list = [item for item in initial_list if "product" in item]
>>> product_list
['product1', 'product2', 'product3', 'product4', 'product5']

答案 2 :(得分:1)

您可以使用列表推导,在其中检查每个元素中是否存在单词product

a = ['X', 'table', 'product1', 'product2', 'product3', 'product4', 'product5']
b = [i for i in a if 'product' in i]
# ['product1', 'product2', 'product3', 'product4', 'product5']

答案 3 :(得分:1)

这有效:

s = pd.Series(['X', 'table', 'product1', 'product2', 'product3', 'product4', 'product5'])
mask = s.str.match("product")
s[mask]

答案 4 :(得分:1)

您还可以执行过滤器,例如:

lst = ['X', 'table', 'product1', 'product2', 'product3', 'product4', 'product5']
lst = filter(lambda x: 'product' in x, lst)
print(list(lst)) 

答案 5 :(得分:0)

首先,您需要创建regex,然后创建filter

import re

mylist = ['X', 'table', 'product1', 'product2', 'product3', 'product4', 'product5']
r = re.compile(".*product")
newlist = list(filter(r.match, mylist))
print(newlist)

输出:

['product1', 'product2', 'product3', 'product4', 'product5']

答案 6 :(得分:0)

您可以使用列表控件方法来查找列表中特定的任何内容。例子

我想在此列表中找到所有学生: ls = ['LSD','Student1','Student2','Student1231','jj',21]

我找到它并列出具有特定条件的 in 方法

print([如果s中的'Student',则为s中的s,则为s)

output = ['Student1','Student2','Student1231']

您可以使用相同的方法在列表中查找产品: product_ls = ['X','表','product1','product2','product3','product4','product5']

print([如果在p中为'product',则在product_ls中为p的p]]