リスト内包表記のおさらい

次のリスト内包表記を説明するためにPython初心者の読める冗長なコードにしてみました。


?単純な内包表記

>>> spam = [1,2,3,4,5]
>>> eggs = [x*2 for x in spam]
>>> spam
[1, 2, 3, 4, 5]
>>> eggs
[2, 4, 6, 8, 10]
>>>
# 上の内包表記と等価のlambda式
>>> eggs = map(lambda x: x*2, spam)
>>> eggs
[2, 4, 6, 8, 10]


?解説用の冗長なコード

>>> spam = [1,2,3,4,5]
>>> eggs = []
>>> count = 0
>>> while len(spam) > count:
...     x = spam[count]
...     eggs.append(x*2)
...     count += 1
...
>>> eggs
[2, 4, 6, 8, 10]


リスト内包表記やlambda式(+map関数)を使えるようになると便利なんですが、慣れるまで頭が右往左往していたので、久しぶりに整理してみました。