如何在不丢失空格的情况下切断弦的末端?

时间:2015-01-20 15:59:57

标签: python list

所以我有一个列表,其中每个元素看起来像这样:

mlist = ['|             | |   |']

我需要做的是,将每条末端的两条垂直线切掉,然后将其转回一根绳子,但我不能丢失任何这些空间。

我试过了:

for i in mlist:
        templist = i.split()
        templist.pop(0)
        templist.pop()
        mlist[count] = templist
        count += 1

但这只是切断了所有的空间。

2 个答案:

答案 0 :(得分:4)

您可以使用str.strip()从开头和结尾删除管道:

mlist = [elem.strip('|') for elem in mlist]

仅在存在的情况下删除|个字符,如果在开头或结尾重复,则会删除多个字符。

你也可以使用切片来删除第一个和最后一个字符,无论它是什么:

mlist = [elem[1:-1] for elem in mlist]

演示:

>>> mlist = [
...     '|             | |   |',
...     '|||           | |  ||',
...     '              | |    ',
... ]
>>> [elem.strip('|') for elem in mlist]
['             | |   ', '           | |  ', '              | |    ']
>>> [elem[1:-1] for elem in mlist]
['             | |   ', '||           | |  |', '             | |   ']

注意这里的差异;第二个元素在开头和结尾有多个管道,最后一个元素没有。

答案 1 :(得分:4)

我认为切片是有用的

mlist = [i[1:-1] for i in mlist]

小型演示

>>> mlist = ['|             | |   |','|            | | | |']
>>> [i[1:-1] for i in mlist]
['             | |   ', '            | | | ']