Python 無料で独習 010 制御構文(for文 応用)

for文応用Python
この記事は約4分で読めます。

for 文 応用編

zip 関数

応用ということなのか、
前回は苗字だけでしたが、今回は苗字+名前の出力です。
リストを使って出力します。
まず苗字と名前のリストをつくり
それをprint文で出力します。

last_names = ['鈴木','佐藤','田中','中曽根']
first_names = ['一郎','次郎','三郎','史郎']
print(last_names[0]+first_names[0]+'さん')
print(last_names[1]+first_names[1]+'さん')
print(last_names[2]+first_names[2]+'さん')
print(last_names[3]+first_names[3]+'さん')

鈴木一郎さん
佐藤次郎さん
田中三郎さん
中曽根史郎さん

で、前回の講義で習ったfor文を使って繰り返し処理をします。
また繰り返しの数はlen()でとります。

for i in range(len(last_names)):
  print(last_names[i]+first_names[i]+'さん')

鈴木一郎さん
佐藤次郎さん
田中三郎さん
中曽根史郎さん

このコードをzipを使って書き直します。

for last_name,first_name, in zip(last_names,first_names,):
  print(last_name+first_name+'さん')

鈴木一郎さん
佐藤次郎さん
田中三郎さん
中曽根史郎さん

複数のリストから要素を順番に取り出してくれます。
ここでもnames という複数形の名詞から単数形nameの値を出しています。
2つのリストだけでなく3つ以上のリストでも可能だそうです。

ということで、試しにミドルネームのリストを定義して
試してみました。

last_names = ['鈴木','佐藤','田中','中曽根']
middle_names =  ['東京','大阪','名古屋','福岡']
first_names = ['一郎','次郎','三郎','史郎']

for last_name,middle_name,first_name, in zip(last_names,middle_names,first_names,):
  print(last_name+middle_name+first_name+'さん')

鈴木東京一郎さん
佐藤大阪次郎さん
田中名古屋三郎さん
中曽根福岡史郎さん

3つのリストからでもちゃんと出力できました。

enumerate関数

つぎはenumerate関数です。

last_namesのリストから要素番号と名前を出力したい場合
前回までの講義で習った方法でコードを書くとこうなります。
last_names = ['鈴木','佐藤','田中','中曽根']
for i in range (len(last_names)):
  print('要素番号',i,last_names[i]+'さん')

要素番号 0 鈴木さん
要素番号 1 佐藤さん
要素番号 2 田中さん
要素番号 3 中曽根さん

この内容をenumerateを使って書くとこうなります。
enumerateは要素の中身と要素番号を同時に取り出してくれます。

for num , last_name in enumerate(last_names):
  print('要素番号',num,last_name+'さん')

要素番号 0 鈴木さん
要素番号 1 佐藤さん
要素番号 2 田中さん
要素番号 3 中曽根さん

3

コメント

タイトルとURLをコピーしました