原来的代码段:
a = ['5654', 'pts/0', 'sl+', '61:01', '|', '|', '\\_', 'L2L3_protocol_0_3_1_0', '410']
for i in range(0,len(a)):
if bool(re.search('\\|',a[i])):
a.remove("|")
由于|分隔符是特殊字符,需要加‘\’进行转义,但 \ 也是特殊字符 ,所以需要加两个 \ 进行转义。
不能在单次循环里面进行list 的remove 操作,因为执行for语句是,获取的list 的长度是它一开始的长度,循环中删除一个元素后,list变短,执行到后面就会报错out of range
下面是改正之后的代码段:
a = ['5654', 'pts/0', 'sl+', '61:01', '|', '|', '\\_', 'L2L3_protocol_0_3_1_0', '410']
j=0
for i in range(0,len(a)):
b = a[i]
if bool(re.search('\\|',a[i])):
j += 1
for i in range(0,j):
a.remove("|")