ホームページ >バックエンド開発 >Python チュートリアル >添字問題とシーケンススライスの解決策について
この記事では、主に Python のシーケンス スライスの添字付けに関する関連情報をサンプル コードを通じて詳しく紹介します。必要な方は以下を参照してください。バー。
はじめに
Python では、スライスは、タプル、リスト、文字列のいずれであっても、よく使用される構文です。一般的な構文は次のとおりです。
sequence[ilow: ihigh :step] # ihigh
、step は空にすることができます。わかりやすくするために、step の使用法は一時的に除外されていますsequence[ilow:ihigh:step] # ihigh
,step 可为空; 为了简短易懂, 暂时排除step的用法考虑
先来简单示范下用法
sequence = [1,2,3,4,5] sequence [ilow:ihigh] # 从ilow开始到ihigh-1结束 sequence [ilow:] # 从ilow开始直到末尾 sequence [:ihigh] # 从头部开始直到ihigh结束 sequence [:] # 复制整个列表
语法很简洁, 也很容易理解, 这种语法在我们日常使用中 是简单又好用, 但我相信在我们使用这种切片语法时, 都会习惯性谨遵一些规则:
ilow, ihigh均小于 sequece的长度
ilow 3afdfebecaa5e3de587ff801d76a6de0sq_slice(s, i1, i2)
使用法を簡単に説明しましょう
// 字符串对象 StringObject.c: (ssizessizeargfunc)string_slice, /*sq_slice*/ // 列表对象 ListObject.c: (ssizessizeargfunc)list_slice, /* sq_slice */ // 元组 TupleObject.c: (ssizessizeargfunc)tupleslice, /* sq_slice */構文は非常に簡潔で簡単です。この構文はシンプルで日常的に使いやすいですが、このスライス構文を使用するときは、習慣的にいくつかのルールに従うことになると思います。
上記の sq_slice 関数に対応するスライス関数からわかるように、スライスを使用するときに左と右の添え字がシーケンスの長さよりも大きい場合、それらはシーケンスの長さに再割り当てされるため、最初のスライスは次のようになります。 print a[10:20]
, 实际上运行的是: print a4:4
. この分析により、添え字がオブジェクトの長さよりも大きいスライスに遭遇しても混乱することはなくなります~
以上が添字問題とシーケンススライスの解決策についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。