エンジニアのサブルーチン

あまり注目されない組み込みのシステムエンジニアをやっています。エンジニア業界のこととか、勉強したこととかを不定期に更新していきます。

Python100本ノック 2問目

1問目は0問目と同じ解法なので割愛。

f:id:code_sugar:20190822231344p:plain

解答

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に格納されるだけのお話でした。