文字列があるとしましょう
Str1 = "TN 81 NZ 0025"
str2 = "DL 11C AA 1111"
two = first2(str1)
print(two)
>>>TN
これらの文字列の最初の2文字を取得するにはどうすればよいですか。これにはfirst2関数が必要です。
string[:2]
と同じくらい簡単です。 functionは、必要に応じて簡単に作成できます。
これでも簡単です
def first2(s):
return s[:2]
一般に、string[i:j]
を使用すると、i
からj
までの文字列の文字を使用できます。 string[:2]
はstring[0:2]
の省略形です。これは配列でも機能します。
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リストと配列-いつ使用するのですか? を参照してください
単純な関数は次のようになります。
def firstTwo(string):
return string[:2]
上記のすべての例では、文字列が十分に長くない場合に例外が発生します。
別のアプローチは、'yourstring'.ljust(100)[:100].strip()
を使用することです。
これにより、最初の100文字が得られます。文字列の最後の文字がスペースである場合、短い文字列を取得する可能性があります。
t = "your string"
文字列の最初のN文字で遊ぶ
def firstN(s, n=2):
return s[:n]
デフォルトと同等
t[:2]
完全を期すために:def
を使用する代わりに、lambda
関数に名前を付けることができます。
first2 = lambda s: s[:2]