回答:
print my_string[0:100]
print 'foo'[:100](len('foo')3なので、foo[100]機能しない場合でも機能します)
縮退したスライスインデックスは適切に処理されます。大きすぎるインデックスは文字列sizeに置き換えられ、上限が下限よりも小さい場合は空の文字列が返されます。
そのため、使用しても安全x[:100]です。
(コメントの)Philippの懸念に答えるために、Unicode文字列でもスライスは機能します
>>> greek=u"αβγδεζηθικλμνξοπρςστυφχψω"
>>> print len(greek)
25
>>> print greek[:10]
αβγδεζηθικ
上記のコードをスクリプトとして実行する場合は、この行を先頭に配置します
# -*- coding: utf-8 -*-
エディターがutf-8で保存しない場合は、正しいエンコーディングに置き換えてください
ςとσ同じ文字です:-)
greek_alphabet:)
配列のスライスはで行われ[first:last+1]ます。
私がよく使用する傾向がある1つのトリックは、楕円で追加情報を示すことです。したがって、フィールドが100文字の場合、次のように使用します。
if len(s) <= 100:
print s
else:
print "%s..."%(s[:97])
そして、はい、()この場合、%書式設定演算子については不必要であることがわかります。それは私のスタイルです。
前の例のほとんどは、文字列が十分に長くない場合に例外を発生させます。
別のアプローチはを使用すること
'yourstring'.ljust(100)[:100].strip()です。
これにより、最初の100文字が得られます。文字列の最後の文字がスペースである場合、短い文字列を取得する可能性があります。
を使用した文字列フォーマット%は、これを処理する優れた方法です。下記は用例です。
書式設定コードは文字列に'%s'変換さ'12345'れますが、既に文字列です。
>>> '%s' % '12345'
'12345'
'%.3s' 最初の3文字のみを使用することを指定します。
>>> '%.3s' % '12345'
'123'
'%.7s'最初の7文字を使用するように言っていますが、5文字しかありません。問題ない。
>>> '%.7s' % '12345'
'12345'
'%7s' 最大7文字を使用し、欠落している文字を左側のスペースで埋めます。
>>> '%7s' % '12345'
' 12345'
'%-7s' 右側の欠けている文字を埋める以外は同じです。
>>> '%-7s' % '12345'
'12345 '
'%5.3' は、最初の3文字を使用すると言っていますが、左側にスペースを入れて合計5文字にします。
>>> '%5.3s' % '12345'
' 123'
右側を埋める以外は同じです。
>>> '%-5.3s' % '12345'
'123 '
複数の引数も処理できます!
>>> 'do u no %-4.3sda%3.2s wae' % ('12345', 6789)
'do u no 123 da 67 wae'