列表推導式是利用已有的列表導出新的列表,它的工作方式類似于 for 循環。
例如,有一個列表,現在想得到一個對應的列表,使得每個元素是原有列表中元素的平方:
>>> [x ** 2 for x in xrange(0, 10)][0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
也可以對原有列表元素進行條件限制:
>>> [x ** 2 for x in xrange(0, 10) if x % 2 == 0][0, 4, 16, 36, 64]
還可以增加 for 語句的部分:
>>> [(x * 2, y) for x in xrange(0, 3) for y in xrange(0, 2)][(0, 0), (0, 1), (2, 0), (2, 1), (4, 0), (4, 1)]
如果使用 for 循環創建相同列表:
result = []for x in xrange(0, 3): for y in xrange(0, 2): result.append((x * 2, y))
可以看到,使用列表推導式,代碼顯得更加簡潔。
新聞熱點
疑難解答