假设我需要过滤一个二维数组
[
[1, 'eth0', 'description', ...],
[2, 'virbr0', 'description', ...],
[3, 'qvb25f982e4-ae', 'description', ...],
[4, 'tap25f982e4-ae', 'description', ...],
...
]
基本上我想过滤掉某些接口(interface)名称。我像这样过滤掉以 q 开头的接口(interface):
info = [i for i in info if not i[1].startswith('q')]
但我需要能够定义要忽略的接口(interface)前缀列表,例如:
exclude = ['q','tap']
info = [i for i in info if not i[1].startswith(exclude)]
但我似乎无法理解这样的事情的逻辑。
请您参考如下方法:
你太接近了!将 exclude 转换为 tuple:
exclude = ('q','tap')
info = [i for i in info if not i[1].startswith(exclude)]
来自documentation :
... prefix can also be a tuple1 of prefixes to look for....
演示:
>>> 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']]
1我加了重点...
