2011-07-25 5 views
13

可能性の重複:
Is there a way to substring a string in Python?ストリップすべてが、最初の5つの文字 - Pythonの

私はフォームのAAAH8192375948 '内の文字列を持っています。どのようにこの文字列の最初の5文字を​​保持し、残りのすべてを取り除くのですか?負の整数を持つ形式のl.stripですか?ありがとう。

+0

@user851620 ** strip()**および** split()**は2つの異なる機能です。あなたは本当に** strip()**を意味しますか?私は何が意味するのだろうと思う_ "すべての残りを取り除く" _。 – eyquem

答えて

23

Pythonの文字列は、リストまたはタプルのようにsequence typeです。単に最初の5つの文字をつかむ:

some_var = 'AAAH8192375948'[:5] 
print some_var # AAAH8 

スライス表記は[start:end:increment]です - あなたはデフォルトを(0にデフォルトを開始LENに終了(my_sequence)と1に増分)を使用する場合の数字はオプションです。だから、:

sequence = [1,2,3,4,5,6,7,8,9,10] # range(1,11) 

sequence[0:5:1] == sequence[0:5] == sequence[:5] 
# [1, 2, 3, 4, 5] 

sequence[1:len(sequence):1] == sequence[1:len(sequence)] == sequence[1:] 
# [2, 3, 4, 5, 6, 7, 8, 9, 10] 

sequence[0:len(sequence):2] == sequence[:len(sequence):2] == sequence[::2] 
# [1, 3, 5, 7, 9] 

stripは、文字列の先頭と末尾から文字または文字のセット削除 - 負の数を入力するだけであなたは、文字列からその負の数の文字列表現を削除しようとしていることを意味します。

+4

それは正しくありません:文字列はPythonの不変のシーケンス型です。ただし、スライシングの値が変数に再配分されている場合、ソリューションは正しいです。 – brandizzi

+0

@ brandizzi - かなり正しい。私は私の答えを更新しました。ありがとう! –

+0

ありがとうございます!それは完全に機能します。 – bac

4

スライスについて聞いたことがありますか?

>>> # slice the first 5 characters 
>>> first_five = string[:5] 
>>> 
>>> # strip the rest 
>>> stripped = string[5:].strip() 
>>> 
>>> # in short: 
>>> first_five_and_stripped = string[:5], string[5:].strip() 
>>> 
>>> first_five_and_stripped 
('AAAH8', '192375948') 
+1

'string [:5]'ではありませんか? – thegrinner

+0

私はあなたがここで何をしているのか見ていますが、スライス表記についてまだ知らない人には少し混乱するかもしれません。 – senderle

+0

引用:この文字列の最初の5文字はどうすればいいですか?**残りの部分はすべて削除しますか?** @sendleだから私は彼がそれを聞いたかどうか尋ねました。しかし、私はそれを完了させます –

5

「最初の5文字以外のすべてを取り除く」という意味ではなく、「最初の5文字を​​残して残りの部分にstrip()」を実行することを前提としています。

>>> x = 'AAH8192375948' 
>>> x[:5] 
'AAH81' 
>>> x[:5] + x[5:].strip() 
'AAH8192375948' 
関連する問題