所以我有一个列表,其中每个元素看起来像这样:
mlist = ['| | | |']
我需要做的是,将每条末端的两条垂直线切掉,然后将其转回一根绳子,但我不能丢失任何这些空间。
我试过了:
for i in mlist:
templist = i.split()
templist.pop(0)
templist.pop()
mlist[count] = templist
count += 1
但这只是切断了所有的空间。
答案 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]
[' | | ', ' | | | ']