Sam*_*tch 1 python list-comprehension
我要说,我需要过滤一个二维数组
[
[1, 'eth0', 'description', ...],
[2, 'virbr0', 'description', ...],
[3, 'qvb25f982e4-ae', 'description', ...],
[4, 'tap25f982e4-ae', 'description', ...],
...
]
Run Code Online (Sandbox Code Playgroud)
基本上我想过滤掉某些接口名称.我过滤掉接口,q如下所示:
info = [i for i in info if not i[1].startswith('q')]
Run Code Online (Sandbox Code Playgroud)
但是我需要能够定义要忽略的接口前缀列表,例如:
exclude = ['q','tap']
info = [i for i in info if not i[1].startswith(exclude)]
Run Code Online (Sandbox Code Playgroud)
但我似乎无法弄清楚这样的逻辑.
你太近了!转exclude成元组:
exclude = ('q','tap')
info = [i for i in info if not i[1].startswith(exclude)]
Run Code Online (Sandbox Code Playgroud)
从文档:
... 前缀也可以是要查找的前缀元组1 ....
演示:
>>> info = [
... [1, 'eth0', 'description'],
... [2, 'virbr0', 'description'],
... [3, 'qvb25f982e4-ae', 'description'],
... [4, 'tap25f982e4-ae', 'description'],
... ]
>>>
>>> exclude = ('q','tap')
>>> info = [i for i in info if not i[1].startswith(exclude)]
>>>
>>> info
[[1, 'eth0', 'description'], [2, 'virbr0', 'description']]
Run Code Online (Sandbox Code Playgroud)
1我强调了......