Pythonの割り当てに取り組んでおり、次のコードのコンテキストで[:-1]が何を意味するのかについて興味がありました。instructions = f.readline()[:-1]
SOとGoogleでここを検索しましたが、役に立ちませんでした。説明が欲しい!
Pythonの割り当てに取り組んでおり、次のコードのコンテキストで[:-1]が何を意味するのかについて興味がありました。instructions = f.readline()[:-1]
SOとGoogleでここを検索しましたが、役に立ちませんでした。説明が欲しい!
文字列をスライスして最後の文字(この場合は改行文字)を省略します。
>>> 'test\n'[:-1]
'test'
これは空の文字列でも機能するため、最後の文字が存在する場合は、それを削除するのに非常に安全な方法です。
>>> ''[:-1]
''
これは、文字列だけでなく、任意のシーケンスで機能します。
テキストファイルの行の場合、実際には改行のみを削除するためline.rstrip('\n')
に使用します。ファイルの最後の行が改行文字で終わっていない場合があり、スライスを使用すると、その行の最後にある他の文字がすべて削除されます。
これは、「シーケンスの最後の要素を除くすべての要素」を意味します。その文脈では、f.readline()[:-1]
「行が改行で終わると確信しているので、それを削除したい」という意味です。
シーケンスの最後の要素を除くすべてを選択します。
リストを使用した以下の例:
In [15]: a=range(10)
In [16]: a
Out[16]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
In [17]: a[:-1]
Out[17]: [0, 1, 2, 3, 4, 5, 6, 7, 8]
リストからすべての要素(または文字列から文字)を取得しますが、最後の要素を取得します。
:
リストを通過することを表すは、リスト
-1
の最後の要素を意味します