Python

ちょっと書き加えるだけ!Pythonで配列から1つ飛びに値を取得する方法

Pythonで配列から1つ飛びに値を取得するには?
Pythonでコードを書いていたら、配列から1つ飛びに値を取得したくなりました。
調べてみたら、拍子抜けするほど簡単にできたのでご紹介します。

 

配列から1つ飛びに値を取得するには?

スライスを使います。
具体的には、添字を「[::2]」と書きます。

a = [1,2,3,4,5,6,7,8,9]
print(a[::2])
 
# ⇒ [1, 3, 5, 7, 9]

 

スライスの基本構文は?

「[start:end:step]」と書きます。

  • start:開始のインデックスを設定します。省略すると要素の最初になります。
  • end:終了のインデックスを設定します。省略すると要素の最後になります。
  • step:増減値を設定します。省略すると飛ばすことなく全ての要素を取得します。

例:インデックス1から6まで、1つ飛ばしで値を取得する

a = [1,2,3,4,5,6,7,8,9]
print(a[1:6:2])
 
# ⇒ [2, 4, 6]

例:配列を逆順で取得する

a = [1,2,3,4,5,6,7,8,9]
print(a[::-1])
 
# ⇒ [9, 8, 7, 6, 5, 4, 3, 2, 1]

 

余談

文字列に対してスライスを使うこともできます。
そこで思いついたのが、バビ語の変換。
日向坂46齊藤京子公式ブログのタイトルを変換するコードを書いてみました。

a = 'こぼんぶにびちびはば'
print(a[::2])
 
# ⇒ こんにちは

バビ語に促音(そくおん)や拗音(ようおん)が入っている場合、このコードは使えません。

 

まとめ

Pythonのスライスを使えば、1つ飛ばしに配列の値を取得することができます。
JavaScriptでは「slice()」と書きますが、Pythonではその文字すら省略できるとは。あまりに簡単で驚いてしまいました。

-Python
-, , , , , , , , , , , ,