web-dev-qa-db-ja.com

Pythonで文字列の最初の2文字を取得する方法は?

文字列があるとしましょう

Str1 = "TN 81 NZ 0025" 
str2 = "DL 11C AA 1111"
two = first2(str1)
print(two)
>>>TN

これらの文字列の最初の2文字を取得するにはどうすればよいですか。これにはfirst2関数が必要です。

18
Ufoguy

string[:2]と同じくらい簡単です。 functionは、必要に応じて簡単に作成できます。

これでも簡単です

def first2(s):
    return s[:2]
18
ShinTakezou

一般に、string[i:j]を使用すると、iからjまでの文字列の文字を使用できます。 string[:2]string[0:2]の省略形です。これは配列でも機能します。

公式チュートリアルでpythonのスライス表記について学ぶ

4
stewSquared

python文字列は文字のリストですが、明示的にリストタイプではなく、リストのようなものです(つまり、リストのように扱うことができます)。より正式には、sequence(参照 http://docs.python.org/2/library/stdtypes.html#sequence-types-str-unicode-list-Tuple-bytearray-buffer-xrange ):

>>> a = 'foo bar'
>>> isinstance(a, list)
False
>>> isinstance(a, str)
True

文字列はシーケンスなので、slicingを使用してlist[start_index:end_index]で示されるリストの部分にアクセスできます (Pythonのスライス表記の説明 を参照)。例えば:

>>> a = [1,2,3,4]
>>> a[0]
1 # first element, NOT a sequence.
>>> a[0:1]
[1] # a slice from first to second, a list, i.e. a sequence.
>>> a[0:2]
[1, 2]
>>> a[:2]
[1, 2]

>>> x = "foo bar"
>>> x[0:2]
'fo'
>>> x[:2]
'fo'

未定義の場合、スライス表記は、開始位置を0、終了位置をlen(sequence)と見なします。

昔のCの時代は、文字の配列であり、動的リストと静的リストの問題全体は今や伝説のように聞こえます Pythonリストと配列-いつ使用するのですか? を参照してください

1
alvas

単純な関数は次のようになります。

def firstTwo(string):
    return string[:2]
1
andyzinsser

上記のすべての例では、文字列が十分に長くない場合に例外が発生します。

別のアプローチは、'yourstring'.ljust(100)[:100].strip()を使用することです。

これにより、最初の100文字が得られます。文字列の最後の文字がスペースである場合、短い文字列を取得する可能性があります。

0
Julien Kieffer
t = "your string"

文字列の最初のN文字で遊ぶ

def firstN(s, n=2):
    return s[:n]

デフォルトと同等

t[:2]
0
J. Doe

完全を期すために:defを使用する代わりに、lambda関数に名前を付けることができます。

first2 = lambda s: s[:2]
0
Thorsten Kranz