在Python的二维列表中删除元素中的字符
我正在用Python处理二维列表。
我有一个字符串列表,代码是m= [[0]*5 for i in range(5)]
。
在把另一个字符串分割后并存储到m
中,我得到了m
的元素,具体如下:
m[0] = "< one"
m[1] = "two"
m[2] = "three"
m[3] = "four"
m[4] = "five >"
我该如何从第0个元素中删除<
字符,以及从第4个元素中删除>
字符呢?
我正在解析一个字符串s。解析这个字符串是为了以后能把值存储到数据库里。所以我需要去掉<
这个字符。
实际代码:
s ="< one > < two > < three > < four : 1 > < five : 2 > < six : 3 > < seven : 4 > < eight : 5 > < nine : 6 >"
m= [[0]*5 for i in range(5)]
m=s.split("> <")
print "The original list"
index=0
for index in m:
print index
输出:
原始列表
< one
two
three
four : 1
five : 2
six : 3
seven : 4
eight : 5
nine : 6 >
3 个回答
0
你的输出看起来不太对——你确定你把项目存储在一个列表里吗?我建议你先了解一下列表的知识,等你搞清楚了之后,可以直接使用remove()这个方法:
m = ["<", "a", "b", "c", "d", ">"]
m.remove("<")
m.remove(">")
print m
>>>['a', 'b', 'c', 'd']
补充:刚看到你的修改,感觉有点不太对——你不能让两个不同的值占用同一个列表的位置(比如你提到的m[2])。
1
然后他发布了代码……我的回答就变成了:
s ="< one > < two > < three > < four : 1 > < five : 2 > < six : 3 > < seven : 4 > < eight : 5 > < nine : 6 >"
m=s.split("> <")
m[0].replace("<", "")
m[-1].replace(">", "")
print m
>>> [' one ', ' two ', ' three ', ' four : 1 ', ' five : 2 ', ' six : 3 ', ' seven : 4 ', ' eight : 5 ', ' nine : 6 ']
0
那我们先来看看怎么正确地分割这个字符串吧?
import re
from pprint import pprint
s ="< one > < two > < three > < four : 1 > < five : 2 > < six : 3 > < seven : 4 > < eight : 5 > < nine : 6 >"
res = re.findall('< (.*?) >', s)
pprint(res)
这样做会得到:
['one',
'two',
'three',
'four : 1',
'five : 2',
'six : 3',
'seven : 4',
'eight : 5',
'nine : 6']