string中的字符串,获取字符串内部

时间:2017-09-13 05:42:01

标签: python-3.x

原始列表就是这个

a=['="1111"', '="2222"', '="3333"', '="4444"']

我试试这个

b=[b.strip('=') for b in a]

然后我得到了这个

  

[' " 1111" ',' " 2222" ',' " 3333" ',' " 4444" ']

我已经尝试过一些方法来移除外面的' '但我仍然无法成功

我想要

  

[" 1111"," 2222"," 3333"," 4444"]

2 个答案:

答案 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']