python

【python】zipとenumerateを使う【→プログラミング初心者向け】

11月 7, 2019

how to use zip and enumerate in python
プログラム女子
2つの配列をfor文で使う時、同時に配列を探索する方法ないですかね?
それには「zip」という関数を使うと良いよ。ついでに配列の添字(順番)を知りたい場合もあるから、今回は合わせて説明するね。
Tommy

pythonのzipとenumerateを使う概要

summary of zip and enumerate

この記事では、配列を扱う場合に便利なzipとenumerateの使いかを説明します。

enumerateは「配列の要素とインデックスを同時に抽出する関数」です。

一方、zipは「複数のリスト要素をまとめて取り出す関数」のことです。

さらに、この記事では、それらの2つを組み合わせた効果的な使い方もサンプルプログラムを使って説明します。

pythonのzipとenumerateを使う前提環境

environment of zip and enumerate

enumerateとzipの使い方の前提環境は、下の記事で説明している私の環境と同じ環境で確認しています。

オススメ
how to check version in python
【python】バージョン確認の方法【→プログラミング初心者向け】

続きを見る

また、レンタルサーバなどのLinuxサーバを使っている場合は、下の記事でプログラミングする環境の作り方を説明しています。

もし、まだプログラムする環境ができていない方は、先にこちらの記事を読んで、プログラミングできる環境をつくることをおすすめします。

オススメ
how to programming on rental server
レンタルサーバでプログラミングする方法【→ブログのサーバでできる!】

続きを見る

pythonのzipとenumerateを使うサンプルプログラム

sample program of zip and enumerate

ここでは、配列と要素番号を同時に取り出すサンプルプログラムを説明します。

For文などでリストの要素を1つずつ取り出して処理したいけど、その要素が何番目の要素なのかを一緒に知りたいことがあります。enumerateはそのような場合に有効です。

enumerateを使うサンプルプログラム

list1のような文字が入った配列があった場合に、enumerateはその順番と値を返してくれる関数です。

※一番先頭の値は「0番目」となります。

if __name__ == '__main__':
  list1 = ['A','B','C','D']
  
  for i,ele_list1 in enumerate(list1):
		print(i)
		print(str(ele_list1))

enumerateを使うサンプルプログラム実行結果

0
a
1
b
2
c
3
d

zipを使うサンプルプログラム

次に、2つ配列から同時に要素を1つづつ取り出すzipの使い方のサンプルプログラムを説明します。

複数のリストから要素を1つずつ取り出してFor文を回したいという場合に、このzipは有効です。

if __name__ == '__main__':
	list1 = ['A','B','C','D']
	list2 = ['a','b','c','d']
  
	for ele_list1,ele_list2 in zip(list1,list2):
		print(str(ele_list1)+':'+str(ele_list2))

zipを使うサンプルプログラム実行結果

A:a
B:b
C:c
D:d

enumerateとzipを組み合わせたサンプルプログラム

最後に、enumeratezipを組み合わせた使い方を説明します。ここでは、2つリスト要素を同時に2つづつ取り出し、要素数も同時に取り出すというサンプルコードを書いています。

リストの要素を1つずつ取り出して処理して、かつ、複数のリストから要素を1つずつ取り出してFor文を回したいという場合に、enumeratezipを組み合わせた使い方が有効です。

if __name__ == '__main__':

	list1 = ['A','B','C','D']
	list2 = ['a','b','c','d']
  
	for i,(ele_list1,ele_list2) in enumerate(zip(list1,list2)):
		print(i)
		print(str(ele_list1)+':'+str(ele_list2))

enumerateとzipのサンプルプログラム実行結果

0
A:a
1
B:b
2
C:c
3
D:d

-python
-

© 2020 Tommy's blog Powered by AFFINGER5