Pythonの基礎学習 - データコンテナ(シーケンス)のスライス

データコンテナのスライス(シーケンス)

シーケンス:コンテンツが連続的で順序付けされており、添字を使用してインデックスを付けることができるデータ コンテナーのタイプ。
リスト、タプル、文字列はすべてシーケンスとみなすことができます。

要素 1、要素 2、要素 n
  0、1、n - 順添字
 -n、-2、-1 - 逆添字

シーケンスの一般的な特性は次のとおりです。順序付けされ、添字付きでインデックス付け可能文字列、タプル、リストはすべてこの要件を満たしています。

シーケンスに対する一般的な操作 - スライス

シーケンスはスライスをサポートします。つまり、リスト、タプル、文字列はすべてスライス操作をサポートします。
スライス: シーケンスからサブシーケンスを削除します。

構文: シーケンス [開始インデックス:終了インデックス:ステップ]

指定された位置から開始し、指定された位置で終了するシーケンスから要素を取り出して、新しいシーケンスを取得することを示します:
1. 開始添字は開始位置を示します。空白のままにすることができます。空白のままにした場合は、それと見なされます。 2.終了
添字 マーク(含まれていません)は終了位置を示します。空白のままでも大丈夫です。空白にした場合は最後までインターセプトとみなされます。
3. ステップ長は、要素間の間隔を順番に取得します
① ステップ長 1 は要素を 1 つずつ取得することを示します
② ステップ長 2 は各要素を取得することを示します 一度に 1 要素をスキップすることを
③ ステップ サイズ N、スキップ N-1 で表します毎回の要素は、
④ ステップ サイズで表され、負の数であり、それを逆方向にとります (開始添え字と終了添え字も逆にマークする必要があることに注意してください)。

この操作はシーケンス自体には影響しませんが、新しいシーケンス (リスト、タプル、文字列) が生成されることに注意してください。

例:

# 对list进行切片,从1开始,4结束,步长1
my_list = [0, 1, 2, 3, 4, 5, 6]
result1 = my_list[1:4]  # 默认步长是1,所以可以省略不写
print(f"结果1:{
      
      result1}")

# 对tuple进行切片,从头开始,到最后结束,步长1
my_tuple = (0, 1, 2, 3, 4, 5, 6)
result2 = my_tuple[:]  # 起始和结束不写表示从头到尾,步长为1可以省略
print(f"结果1:{
      
      result2}")

# 对str进行切片,从头开始,到最后结束,步长2
my_str = "0,1,2,3,4,5,6,7"
result3 = my_str[::2]
print(f"结果1:{
      
      result3}")

# 对str进行切片,从头开始,到最后结束,步长-1
my_str = "0,1,2,3,4,5,6,7"
result4 = my_str[::-1]  # 等同于序列反转了
print(f"结果1:{
      
      result4}")

# 对列表进行切片,从3开始,1结束,步长-1
my_list = [0, 1, 2, 3, 4, 5, 6]
result5 = my_str[3:1:-1]
print(f"结果1:{
      
      result5}")

# 对元组进行切片,从头开始,到最后结束,步长-2
my_tuple = (0, 1, 2, 3, 4, 5, 6)
result6 = my_tuple[::2]
print(f"结果1:{
      
      result6}")

操作結果:

結果 1: [1, 2, 3]
結果 1: (0, 1, 2, 3, 4, 5, 6)
結果 1: 01234567
結果 1: 7,6,5,4,3,2,1,0
結果 1:,1
結果 1: (0, 2, 4, 6)

シーケンスのスライスの概要

1. シーケンス: 添字インデックス付けをサポートする、連続的で順序付けられたコンテンツを含むデータ コンテナーの一種。
2. シーケンス、リスト、タプル、文字列とみなすことができます。
3. シーケンスをスライスする方法:シーケンス[開始:終了:ステップ]
4. 先頭は省略可能、先頭からの開始も省略できます。
5. 末尾は省略可能で、末尾で終了します。
6. ステップ サイズは省略できます。省略されたステップ サイズは 1 です (負の数にすることもでき、逆の順序で実行することを示します)。

シーケンススライスの練習

# 三种方式取出我是二狗
my_str = "狗二是我1,nohtyp学"
# 倒序字符串,切片取出
result1 = my_str[::-1][9:13]
print(f"1的结果:{
      
      result1}")

# 切片取出,然后倒序
result2 = my_str[0:4][::-1]
print(f"2的结果:{
      
      result2}")

# split分隔“,” replace替换“来”为空,倒序字符串
result3 = my_str.split(",")[0].replace("1", "")[::-1]
print(f"3的结果:{
      
      result3}")

操作結果:

1 の結果: 私は 2 番目の犬です
2 の結果: 私は 2 番目の犬です
3 の結果: 私は 2 番目の犬です

おすすめ

転載: blog.csdn.net/weixin_44996886/article/details/132678423