Python100本ノック 2問目
1問目は0問目と同じ解法なので割愛。
解答
car1 = 'パトカー' car2 = 'タクシー' result = '' for (x,y) in zip(car1, car2): result += x + y print(result) # ==> 'パタトクカシーー'
for文
反復処理ではwhileかforがよく使われると思う。
pythonの反復処理は少々面白い。
一般的によく見るコードは下記のようなものかと。
letters = ['list1' , 'list2', 'list3' , 'list4'] num = 0 while num < len(letters): print(letters[num]) current += 1 # >>> list1,list2,list3,list4
けどpythonだともっと簡単に描ける
letters = ['list1', 'list2', 'list3', 'list4'] for letter in letters: print(letter) # ==> list1,list2,list3,list4
たった三行でかけちゃう。
これは各イテレーションごとにlettersの中の要素をletterという変数に格納し、それをprintで出力しているだけです。
zip()
この for文には複数のシーケンスをイテレートできるzip()という物がある。
car1 = 'パトカー' car2 = 'タクシー' result = '' for (x,y) in zip(car1, car2): # list(zip(car1, car2)) ==>[('パ', 'タ'),('ト', 'ク'),('カ', 'シ'),('ー', 'ー')] result += x + y print(result) # ==> 'パタトクカシーー'
car1,car2の要素がイテレーションごとにx,yに格納されるだけのお話でした。