使用列表推导从python中的列表中删除列表?

时间:2016-12-07 10:57:53

标签: python list

我有一个列表如下:

list = [['ab_c'], ['da_c'], ['da_b']]

我想使用列表推导从列表中删除[' ab_c']。 结果列表将是:

list = [['da_c'], ['da_b']]

我尝试使用以下代码:

new_list = [x for x in list if ['da_'] in x]

但是打印new_list时的输出如下:

[]

这是一个空列表。 谁能建议我如何满足上述需求?

4 个答案:

答案 0 :(得分:3)

我将此解释为“选择其中包含以da_开头的任何字符串的子列表”:

new_list = [x for x in list if any(s.startswith('da_') for s in x)]

当然,如果子列表中只有一个元素,则更容易:

new_list = [x for x in list if x[0].startswith('da_')]

答案 1 :(得分:1)

new_list = [x for x in l if 'da_' in x[0]]

输出:

[['da_c'], ['da_b']]

答案 2 :(得分:0)

试试这个..

lis= [['ab_c'], ['da_c'], ['da_b']]
new_list = [x for x in lis if any(s.startswith('da_') for s in x)]
print new_list

输出:

[['da_c'], ['da_b']]

答案 3 :(得分:0)

试试这个:

list = [['ab_c'], ['da_c'], ['da_b']]
new_list = []
for item in list:
  if 'ab_c' not in item:
    new_list.append(item)

print new_list