【Python】zipとアンパック

はじめに

数字と数字のローマ字のタプルのリストがある。

それをアンパックしたものをzipに渡したものをfor文のイテラブルとして使用する。

zipの処理が行われた要素を出力する。

ソースコード

zip · ki-hi-ro/python@21d72c2

num_list = [(1, 'one'), (2, 'two'), (3, 'three')]
for number in zip(*num_list):
    print(number)

出力結果

元のタプルの最初の要素のタプルと、元のタプルの二つ目の要素のタプルが生成された。

(1, 2, 3)
('one', 'two', 'three')

アンパック

*num_listは、[(1, ‘one’), (2, ‘two’), (3, ‘three’)]を(1, ‘one’), (2, ‘two’), (3, ‘three’)とするのに使用している。以下のようなイメージ。

for number in zip((1, 'one'), (2, 'two'), (3, 'three')):
    print(number)

↓出力結果
(1, 2, 3)
('one', 'two', 'three')

アンパックをしなかったら、以下のようになる。もう片方のペアがいない状態。

for number in zip(num_list):
    print(number)

↓出力結果
((1, 'one'),)
((2, 'two'),)
((3, 'three'),)

それもそのはず。リスト単体を渡しているから。

num_list
[(1, 'one'), (2, 'two'), (3, 'three')]

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です