Developer

【Python独学】リストの連結とスライス
2020.11.02
Lv1

【Python独学】リストの連結とスライス

今回はリストの連結とスライスをやっていきます。
連結とスライスというとピント来ないかもしれませんが、要するに

  • 連結  :2つのリストを一つにまとめよう
  • スライス:リストから一部の要素を取り出して別のリストを作ろう

というだけです。


リストの連結

リストの連結を行う方法は以下の2つです。

  • 演算子を使う
  • extend()を使う

ではそれぞれ説明していきます。


○演算子を使う

使う演算子は2つです。

①「+」
文字列の結合や数値の足し算に使った演算子です。

pre = ["強化系", "放出系", "変化系"]
sur = ["操作系", "具現化系", "特質系"]

aura = pre + sur

print(aura)
C:\Python> python connect1.py
[‘強化系’, ‘放出系’, ‘変化系’, ‘操作系’, ‘具現化系’, ‘特質系’]

文字列の結合に近い感覚ですね。

②「+=」
こちらも以前に出てきた演算子ですね

念の為使い方のおさらい

var1 = 1
var1 = var1 + 1

var2 = "ココ"
var2 = var2 + "ドコ?"

print(var1)
print(var2)

print()
"""
上記のように書くこともできますが。。。
+=を使用して以下の様に書くほうがスマートですね。
"""

var3 = 10
var3 += 6

var4 = "ココ"
var4 += "日本"

print(var3)
print(var4)
C:\Python> python connect2.py
2
ココドコ?

16
ココ日本

リストも同じ様に記述することができます。

sin1 = ["傲慢", "強欲", "嫉妬"]
sin2 = ["憤怒", "色欲", "暴食", "怠惰"]

sin1 += sin2

print(sin1)
C:\Python> python connect3.py
[‘傲慢’, ‘強欲’, ‘嫉妬’, ‘憤怒’, ‘色欲’, ‘暴食’, ‘怠惰’]

無事七つの大罪が完成しました。

2つの違いをあげるとすれば、
「+」 :2つのリストを足して別の変数に格納することができる
    もちろん元のリストに格納することも可。
「+=」:一方のリストに他方のリストを足し込む
と言った点でしょうか。

どちらが正解というわけではないので、
時と場合で使い分けていきましょう。


○extend()を使う

extend()は先程紹介した「+=」と同様の動きとなります。

onitaiji  = ["桃太郎"]
otomo     = ["犬", "猿", "雉"]

onitaiji.extend(otomo)

print(onitaiji)
C:\Python> python connect4.py
[‘桃太郎’, ‘犬’, ‘猿’, ‘雉’]

「+=」と同じ動きであるため、一方のリストに他方のリストを足し込む動きになることに注意しましょう。


スライス

スライスを行う方法は個別の要素にアクセスする際の記述方法ににています。
変数[開始位置:終了位置] と書きます。

moto = ["○", "●", "□", "■"]
sliced = moto[1:3]

print(sliced)
C:\Python> python slice1.py
[‘●’, ‘□’]

この時、注意しないといけない事があります。
開始位置に指定した要素は含まれますが、
終了位置に指定した要素は含まれないということです。

上記の例でも1番目の要素である「●」は含まれていますが、
3番目の要素である「■」は含まれていません。

スライスは他にも指定の仕方が色々あるので順番に説明していきます。

開始・終了位置を省略する。

スライスする際に開始・終了位置を省略するとそれぞれ以下の様な動作になります。
・開始位置を省略
 →0番目の要素から終了位置で指定した位置の手前まで。
・終了位置を省略
 →開始位置から最後の要素まで
・両方を省略
 →リスト全体

では実際に書いてみます。

array = ["○", "●", "□", "■", "△", "▲"]
sliced1 = array[:3] #開始位置省略
sliced2 = array[3:] #終了位置省略
sliced3 = array[:]  #両方省略

print(sliced1) #0番目~2番目まで
print("----")
print(sliced2) #3番目~最終要素まで
print("----")
print(sliced3) #arrayと同じもの

C:\Python> python slice2.py

[‘○’, ‘●’, ‘□’]

—-

[‘■’, ‘△’, ‘▲’]

—-

[‘○’, ‘●’, ‘□’, ‘■’, ‘△’, ‘▲’]

まとめ

・複数のリストを連結する方法
 「+=」を使う。
 extend()を使う

・リストから別のリストを取り出す方法
 変数名[開始位置:終了位置]


確認問題

以下のリストを使って、セ・リーグとパ・リーグを作ってみよう。

array1 = [“日ハム”, “楽天”]
array2 = [“ロッテ”, “ヤクルト”, “巨人”, “西武”, “横浜”]
array3 = [“中日”]
array4 = [“オリックス”,”阪神”]
array5 = [“広島”]
array6 = [“福岡”]

連載目次

独学で学ぶ Pythonプログラミング 連載目次