python3 在列表中提取包含指定字符串的那一组列表?

123是任意字符串
例如 :
data = [['123','a-123'],['123','b-123'],['123','c-123'],['123','d-123'],['123','e-123']]
想要提取出包含'a'和'b'的列表:
data= [['123','a-123'],['123','b-123']]
返回这样的数据才是 请问要怎么实现不仅仅是只提取出['a-123'] 而是要提取 ['123','a-123']这样的,提取出后再用append合并到一个[]里
求助 谢谢

data = [['123','a-123'],['123','b-123'],['123','c-123'],['123','d-123'],['123','e-123']]

#想要提取出包含'a'和'b'的列表:

data= [['123','a-123'],['123','b-123']]

lit = []

for i in data:

    if "a" or "b" in i:

        lit.append(i)

print(lit)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-06-09

代码如下:


data = [[['123'], ["a-123"]], [['123'], ["b-123"]], [['123'], ["c-123"]], [['123'], ["d-123"]], [['123'], ["e-123"]],[['123'], ["f-123"]]]

result = list(filter(lambda x:'a' in str(x) or 'b' in str(x) ,data))
print(result)


输出:

[[['123'], ['a-123']], [['123'], ['b-123']]]

追问

是我写的数据有问题 不好意思啊
正确的数据应该是这样:
data = [['123','a-123'],['123','b-123'],['123','c-123'],['123','d-123'],['123','e-123']]
想要提取出包含'a'和'b'的列表:
data= [['123','a-123'],['123','b-123']]
返回这样的数据才是 请问要怎么实现

追答

一样的代码,如果你是想把过滤后的结果还是保存在变量data中的话。运行截图如下:

相似回答