python 에는 list comprehension 이라는 것이 있다. 리스트를 쉽게 만들 수 있게 해주는 문법이다.

1. 0 부터 99 까지 정수를 가지는 리스트를 만들어 보자.
>>> result = [ x for x in range(0,100) ]>>> print result [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]>>>
한 줄에 원하는 것을 만들 수 있어서 정말 편하다.

문법을 이해 하자면, 맨 앞의 x 가 리스트의 element로 들어가는 표현이다. x 라고 쓰지 않고 2**x 와 같이 쓴다면, 2 의 x 승의 값이 리스트로 들어 간다. x 값은 그 뒤에 나오는 for 문에 의해서 반복되어진다.

for 문은 중복해서 사용 가능하다. 
>>> result = [(x,y) for x in range(0,10) for y in range(0,10)]>>> print result[(0, 0), (0, 1), (0, 2) , (0, 3), (0, 4), (0, 5), (0, 6), (0, 7), (0, 8), (0, 9),(1, 0), (1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (1, 7), (1, 8), (1, 9),(2, 0), (2, 1), (2, 2), (2, 3), (2, 4), (2, 5), (2, 6), (2, 7), (2, 8), (2, 9),(3, 0), (3, 1), (3, 2), (3, 3), (3, 4), (3, 5), (3, 6), (3, 7), (3, 8), (3, 9),(4, 0), (4, 1), (4, 2), (4, 3), (4, 4), (4, 5), (4, 6), (4, 7), (4, 8), (4, 9),(5, 0), (5, 1), (5, 2), (5, 3), (5, 4), (5, 5), (5, 6), (5, 7), (5, 8), (5, 9),(6, 0), (6, 1), (6, 2), (6, 3), (6, 4), (6, 5), (6, 6), (6, 7), (6, 8), (6, 9),(7, 0), (7, 1), (7, 2), (7, 3), (7, 4), (7, 5), (7, 6), (7, 7), (7, 8), (7, 9),(8, 0), (8, 1), (8, 2), (8, 3), (8, 4), (8, 5), (8, 6), (8, 7), (8, 8), (8, 9),(9, 0), (9, 1), (9, 2), (9, 3), (9, 4), (9, 5), (9, 6), (9, 7), (9, 8), (9, 9)]
if 문을 사용해서 list에 추가 할때 filter를 사용 할 수도 있다.
>>> result = [ x for x in range (0,100) if x%2!=0 and x%3!=0]>>> print result[1, 5, 7, 11, 13, 17, 19, 23, 25, 29, 31, 35, 37, 41, 43, 47, 49, 53, 55, 59, 61, 65, 67, 71, 73, 77, 79, 83, 85, 89, 91, 95, 97]
python 사용하면서 아주 만족도가 높은 문법이다.
AND