numbers = []
for n in range(1 , 10):
numbers.append(n)
print(numbers)
# [1, 2, 3, 4, 5, 6, 7, 8, 9]
numbers2 = [x for x in range(1 , 10)]
print(numbers2)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
test_num3 = [x for x in range(1 , 10) if x % 2 ==0]
print(test_num3)
# [2, 4, 6, 8]
test_num3 = [x*2 for x in range(1, 10) if x %2 ==0]
print(test_num3)
# [4, 8, 12, 16]
cubes = [n **3 for n in range(1,10)]
print(cubes)
# [1, 8, 27, 64, 125, 216, 343, 512, 729]
r1 = ['black', 'white']
r2 = ['red', 'blue', 'green']
r3 = []
for t in r1 :
for p in r2:
r3.append(t + p)
print(r3)
# ['blackred', 'blackblue', 'blackgreen', 'whitered', 'whiteblue', 'whitegreen']
이러한 문자를 list comprehension 을 이용해서 바꿀 수 있다.'
r1 = ['black' , 'white']
r2 = ['red' , 'blue' , 'green']
r3 = []
r3 = [t+p for t in r1 for p in r2]
print(r3)
# ['blackred', 'blackblue', 'blackgreen', 'whitered', 'whiteblue', 'whitegreen']
제일 처음에 있는 반복문 부터 읽어가면 된다.
그리고 마지막으로 표현되는것은 t+p
라고 생각하면 된다.
r = [n * m for n in range(2, 10) for m in range(1, 10) if (n * m) % 2]
print(r)
# [3, 9, 15, 21, 27, 5, 15, 25, 35, 45, 7, 21, 35, 49, 63, 9, 27, 45, 63, 81]
for row in map_reader:
company_list.append(row[2])
[company_list.append(row[2]) for row in map_reader]
duplicate_name = []
for b in broad_list:
for c in company_list:
if b == c:
duplicate_name.append(c)
이렇게 되어있는 것을
list comprehension 을 사용하게 되면
duplicate_name = []
[duplicate_name.append(c) for c in company_list for b in broad_list if b==c]
이중 포문을 사용하게 되면
for c in company_list for b in broad_list
중에서 앞의 for 문
for c in company_list
문이 먼저 시작하게 되고
그리고
for b in broad_list
반복문이 시작하게 된다.
다른 예제로
for bio in bio_list:
for company in company_list:
if bio == company:
print(bio)
이 코드를 list comprehension 을 사용하게 된다면,
[print(bio) for bio in bio_list for company in company_list if bio==company]
그리고 이것은 팁인데 ,
list comprehension 을 사용하게 되면
코드가 오른쪽으로 길어지게 된다.
이때
[duplicate_name.append(c)
for b in broad_list
for c in company_list if b == c]
그냥 이렇게 정리하면 된다.