我有一个列表如下:
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时的输出如下:
[]
这是一个空列表。 谁能建议我如何满足上述需求?
答案 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