在Python的二维列表中删除元素中的字符

-1 投票
3 回答
1373 浏览
提问于 2025-04-17 17:32

我正在用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']

撰写回答