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
コメント