原始列表就是这个
a=['="1111"', '="2222"', '="3333"', '="4444"']
我试试这个
b=[b.strip('=') for b in a]
然后我得到了这个
[' " 1111" ',' " 2222" ',' " 3333" ',' " 4444" ']
我已经尝试过一些方法来移除外面的' '但我仍然无法成功
我想要
[" 1111"," 2222"," 3333"," 4444"]
答案 0 :(得分:1)
技术-1:使用 strip()
>>> a=['="1111"', '="2222"', '="3333"', '="4444"']
>>> b=[b.strip('=').strip('"') for b in a]
>>> b
['1111', '2222', '3333', '4444']
技术-2:使用 replace()
>>> a=['="1111"', '="2222"', '="3333"', '="4444"']
>>> b=[b.replace("=","").replace('"',"") for b in a]
>>> b
['1111', '2222', '3333', '4444']
以上两种技术都适用于简单和小型列表。如果我们对包含1000个元素的列表采用相同的方法,它将迭代超过1000个元素。因此,为了避免,您可以按照技术 - 3 :
进行操作>>> a=['="1111"', '="2222"', '="3333"', '="4444"']
>>> b = ','.join(a).replace("'","").replace('"',"").replace("=","").split(",")
>>> b
['1111', '2222', '3333', '4444']
或
>>> import re
>>> mystring = ','.join(a)
>>> re.sub('[^A-Za-z0-9,]+','',mystring).split(",")
['1111', '2222', '3333', '4444']
答案 1 :(得分:0)
str.strip()
允许您修剪多个字符:
a = ['="1111"', '="2222"', '="3333"', '="4444"']
b = [i.strip('="') for i in a]
print(b)
输出:
['1111', '2222', '3333', '4444']