Python [ ]、[:]、[::] の使用法

スライスを操作するには:

[ ]: 主にシーケンス内の要素を取得します。たとえば、str_list[2] はシーケンス内の 3 番目の要素を取得します。ここで、2 はシーケンス内のインデックスを指します。

[:]: 主にシーケンス内の要素のセクションを取得します。たとえば、str_list[1:4] は、str_list シーケンス (str_list[1]、str_list[2]、str_list[3]) の 2 番目から 4 番目の要素にアクセスすることを意味します。 , str_list[4] 要素は含まれません。

インデックス値が指定されていない場合、デフォルトは 0 になります。str_list[:4] はこのシーケンスの最初から 4 番目の要素 (str_list[4] 要素を除く) にアクセスすることを意味し、str_list[4:] は 5 番目から最後の要素にアクセスすることを意味します。注: m\n は負の値にすることができ、m>n の場合は空を返します。

[::]: 主にシーケンス内の要素を逆の順序および間隔で取得します。例: (1)シーケンスの要素を反転します。たとえば、str_list[::-1] はシーケンス内の要素を反転することを意味します。str_list はシーケンス内の要素。(2): インターバルフェッチ要素: str_list[1::2]、インデックス 1 から開始し、毎回 2 つのフェッチ要素をジャンプします。注: n が負の場合、数値は逆順に取得されます。n が正で m が空の場合、デフォルトは m=0 です。n が負で m が空の場合、デフォルトは -1 です。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from __future__ import absolute_import
from __future__ import print_function
from __future__ import division

import os
import sys
import cv2
import numpy as np
import matplotlib.pyplot as plt

print(16 * "++--")

str_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G']
print("str_list:", str_list)
print("str_list[3]:", str_list[3])
print("str_list[1:4]:", str_list[1:4])
print("str_list[:4]:", str_list[:4])
print("str_list[4:]:", str_list[4:])
print("str_list[::-1]:", str_list[::-1])
print("str_list[::2]:", str_list[::2])
---------------------------------------------------

++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--
str_list: ['A', 'B', 'C', 'D', 'E', 'F', 'G']
str_list[3]: D
str_list[1:4]: ['B', 'C', 'D']
str_list[:4]: ['A', 'B', 'C', 'D']
str_list[4:]: ['E', 'F', 'G']
str_list[::-1]: ['G', 'F', 'E', 'D', 'C', 'B', 'A']
str_list[::2]: ['A', 'C', 'E', 'G']

Process finished with exit code 0

Pythonのスライス演算子のプロトタイプは [開始:停止:ステップ]、[開始インデックス:終了インデックス:ステップ値] です。
開始インデックス: 0 から始まります。シーケンスの左から右の方向では、最初の値のインデックスは 0、最後の値のインデックスは -1 になります。
インデックスの終了: スライス演算子は、インデックスの値を除いて、インデックスまでフェッチします。
ステップ値: デフォルトでは、1 つずつカットします。2 の場合は、1 つおきの操作が実行されることを意味します。ステップ値が正の場合、左から右へ進むことを意味します。負の場合は、右から左へ進むことを意味します。ステップ値を 0 にすることはできません。
[:]はリストをそのままコピーします。


import os
import sys
import cv2
import numpy as np

print(16 * "++--")
str_data = 'abcdefg'
print("str_data[3]:", str_data[3])
print("str_data[3:5]:", str_data[3:5])
print("str_data[:5]:", str_data[:5])
print("str_data[3:]:", str_data[3:])
print("str_data[::2]:", str_data[::2])
print("str_data[::-1]:", str_data[::-1])
print("str_data[-1]:", str_data[-1])
print("str_data[-2]:", str_data[-2])
print("str_data[-5:-2]:", str_data[-5:-2])
print("str_data[-2:-5]:", str_data[-2:-5])
--------------------------------------------------

++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--
str_data[3]: d
str_data[3:5]: de
str_data[:5]: abcde
str_data[3:]: defg
str_data[::2]: aceg
str_data[::-1]: gfedcba
str_data[-1]: g
str_data[-2]: f
str_data[-5:-2]: cde
str_data[-2:-5]: 

Process finished with exit code 0

おすすめ

転載: blog.csdn.net/m0_62278731/article/details/130315674