2016-07-07 4 views
-1

文字列の末尾から['を最初から削除し、']文字を削除します。Python:['と']を削除するには?

これは私のテキストです:

"['45453656565']" 

私はこのテキストを持っている必要があります:

"45453656565" 

私はstr.replace

text = text.replace("['",""); 

を使用しようとしたが、それは動作しません。

+3

"_does not work_"とはどういう意味ですか?それは何をするためのものか? – rodrigo

+0

は、より具体的な質問を編集しました。開始と終了は削除される文字の位置です;-) – Dilettant

+1

'text.replace(" ['"、" ")' [''は空の文字列であるので、 '' 45453656565 '] "'を結果として取得する必要があります。 'text.replace(" ['"、" ").replace("'] "、" ")'はあなたが望むものを返すべきですが、より良い解決策があります。 – Bakuriu

答えて

7

あなたはstr.strip()方法に不要な文字を渡すことによって、あなたのテキストを削除する必要があります。

>>> s = "['45453656565']" 
>>> 
>>> s.strip("[']") 
'45453656565' 

それとも、それはあなたが単にint関数にストライプ結果を渡すことができ整数に変換したい場合:

>>> try: 
...  val = int(s.strip("[']")) 
... except ValueError: 
...  print("Invalid string") 
... 
>>> val 
45453656565 
+0

こんにちは、あなたのコードは魅力的に機能します。申し訳ありませんが、私はこの回答を受け入れることができません "あなたは5分で回答を受け入れることができます" – Nguyen

+2

@グエン**答えを受け入れることは急いではありません**実際には、実際には少なくとも数時間、 。回答を早期に受け入れることは、質問を読む人の数が少なくなったり、答えを出そうとする人が少ないことを意味します。ほとんどの場合、最初の答えはより良いものではありません。 – Bakuriu

+0

@Nguyen私はBakuriuに同意します:-)これは簡単な質問ですが、少なくとも数時間は待つ方が良いですが、もっと重要で複雑な質問には常にこのヒントを使うことができます。 – Kasramvd

0

要素が数字の場合、文字フィルタリングをループオーバーすることができます。

>>> number_array = "['34325235235']" 
>>> int(''.join(c for c in number_array if c.isdigit())) 
34325235235 

この解決策は、"['34325235235']"'["34325235235"]'の両方でも、数字と文字の他の組み合わせでも機能します。

また、パッケージをインポートし、それを得るために定期的にexpresionを使用することができます。

re.subを使用して
>>> import re 
>>> theString = "['34325235235']" 
>>> int(re.sub(r'\D', '', theString)) # Optionally parse to int 
+1

この問題を解決する最悪の方法:-)。 – Kasramvd

+0

正規表現のソリューションに興味がある可能性があるので、私は自分の答えを更新しました。 –

0

>>> my_str = "['45453656565']" 
>>> import re 
>>> re.sub("['\]\[]","",my_str) 
'45453656565' 
0

代わりにブラケットをストリッピングすることにより、あなたのデータをハッキングの、スクリプトを編集してください数字だけを印刷するためにそれを作成しました。例えば、代わりに遅延し

output.write(str(mylist)) 

を行うのあなたが後ろにあなたのデータを読み取るときに、それは任意の引用符、カンマまたは括弧なし(文字列として)数値が含まれています

for elt in mylist: 
    output.write(elt + "\n") 

を書くことができます。

+0

はい、あなたは正しいです。これは私が欲しいものです。もうストリップは必要ありません – Nguyen

+0

それを聞いてうれしいです。私の答えが役に立つと分かったら、それを "upvote"してください。 (あなたが現在受け入れているものよりも良いものを好きなら、あなたが "受け入れる"答えを変えることさえできます。) – alexis

関連する問題