我有一个包含IP地址和DNS名称的字符串列表,我希望删除以“10”开头的值.只要.样本数据如下:
[ ‘www.example.com’, ‘1.2.3.4’, ‘4.3.2.1’, ‘example.net’, ‘10.1.1.10’, ‘10.1.1.11’,…]
我认为这很简单,并从以下开始:
for v in address:
test = re.match('(^\d+\.)',v)
if test:
if test.group(1) == '10.':
address.remove(v)
“10”虽然我没有收到任何错误,但是没有删除地址(并且使用“print address.remove(v)”进行了一些t-shooting,导致每个“10.”地址都为“无”.让我相信正则表达式是错了但似乎除了这个能力之外还有效.
所以我用re.purge()戳了一下 – 这也没有帮助,但不认为这是我问题的一个因素.我也尝试使用del地址[…]无济于事.
我哪里出错了?
非常感谢您的关注.
简单的方法是使用列表推导:
filtered = [ v for v in address if not v.startswith('10.') ]