2017-09-13 16 views
0

の内側にオリジナルのリストは、この文字列、文字列

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

あります私は[その後、私はこの

を得た。この

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

を試してみてください ' "1111"'、 ' "2222" '、' 3333 ''、 '4444' ']

私は '' 外削除するにはいくつかの方法を試してみましたが、私はまだ私が

[ "1111"、 "2222"、 "3333"、 "4444"]を取得したいこと

することはできません

+1

あなたがやっているものは何でも、あなたはあまり狂気の方法であなたのデータを管理する必要があります。あなたは最初に引用符を得てはいけません。 – alexis

答えて

1

テクニック-1:replace()使用

>>> a=['="1111"', '="2222"', '="3333"', '="4444"'] 
>>> b=[b.strip('=').strip('"') for b in a] 
>>> b 
['1111', '2222', '3333', '4444'] 

テクニック-2:strip()を使用

>>> 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'] 
0

str.strip()あなたが複数の文字でトリミングすることができます:

a = ['="1111"', '="2222"', '="3333"', '="4444"'] 
b = [i.strip('="') for i in a] 
print(b) 

出力:

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