在我尝试从列表中删除不包含冒号的元素的情况下,Remove()对我来说无法正常工作.这是我的清单;
myList = ['hosts:127.0.0.1','-nU','-nT','-cA','-nB']
Run Code Online (Sandbox Code Playgroud)
做separated = myList.split(','),然后
for i in separated:
if ':' not in i:
separated.remove(i)
print separated
Run Code Online (Sandbox Code Playgroud)
留给我['hosts:127.0.0.1', '-nT', '-nB']作为我的输出.我假设这是因为remove()只删除第一个匹配元素.这仍然无法解释为什么-nt和-nb会在那里.这样做有什么好办法?
谢谢
迭代时不要修改列表.
改为使用副本,或者更常用的是列表理解:
separated = [i for i in myList if ':' in i]
Run Code Online (Sandbox Code Playgroud)