ホームページ  >  記事  >  バックエンド開発  >  Python はスライスに名前を付けるメソッドを実装します

Python はスライスに名前を付けるメソッドを実装します

不言
不言転載
2018-10-15 14:17:532138ブラウズ

この記事の内容はPythonでスライスに名前を付ける方法に関するものですが、ある程度の参考価値はありますので、困っている方は参考にしていただければ幸いです。

1. 要件

私たちのコードは、あらゆる場所にハードコードされたスライス インデックスがあり、判読できなくなったため、それらを最適化したいと考えています。

2. 解決策

コード内にハードコーディングされたインデックス値が多数あると、可読性と保守性が低下します。

組み込みのslice()関数は、スライス操作が実行されるどこでも使用できるスライスオブジェクトを作成します。

items=[0,1,2,3,4,5,6]
a=slice(2,4)
print(items[2:4])
print(items[a])

items[a]=[10,11,12,13]
print(items)

del items[a]
print(items[a])
print(items)

実行結果:

[2, 3]
[2, 3]
[0, 1, 10, 11, 12, 13, 4, 5, 6]
[12, 13]
[0, 1, 12, 13, 4, 5, 6]

スライス オブジェクトのインスタンスがある場合。オブジェクトに関する情報は、それぞれ s.start、s.stop、s.step プロパティを通じて取得できます。例:

items=[0,1,2,3,4,5,6]
a=slice(2,8,3)
print(items[a])
print(a.start)
print(a.stop)
print(a.step)

結果:

[2, 5]
2
8
3

さらに、index(size) メソッドを使用して、スライスを特定のサイズのシーケンスにマッピングできます。これは (開始、停止、ステップ) タプルを返します。すべての値は (インデックス操作を行う際の IndexError 例外を避けるため) 境界内に適切に制限されています。例:

s='HelloWorld'
a=slice(2,5)
print(a.indices(len(s)))
for i in range(*a.indices(len(s))):
    print(str(i)+":"+s[i])

Result:

ああ、

以上がPython はスライスに名前を付けるメソッドを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。