nums = [1,2,3,4,5,6,7,8,9,10]
multi_nums = [n*2 for n in nums]
# [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
arr = [n for n in range(10) if n % 2 == 0]
# [0, 2, 4, 6, 8]
arr = [n*2 if n % 2 == 0 else n for n in range(10)]
# [0, 1, 4, 3, 8, 5, 12, 7, 16, 9]
arr = [(n, '2의배수') if n%2 == 0 else (n,'3의배수') if n%3 == 0 else n for n in range(1,10)]
# [1, (2, '2의배수'), (3, '3의배수'), (4, '2의배수'), 5, (6, '2의배수'), 7, (8, '2의배수'), (9, '3의배수')]
matrix = [[1,2,3],[4,5,6],[7,8,9]]
nums = [x for arr in matrix for x in arr]
# [1, 2, 3, 4, 5, 6, 7, 8, 9]
{ key:value for 원소 in 반복가능한 객체 }
nums = [1, 2, 3]
a = {key: value for key, value in enumerate(nums)}
# {0: 1, 1: 2, 2: 3}
person = {'name': 'lizzy', 'sex': 'female', 'hobby': None}
lizzy = {key:value for key, value in person.items() if value is not None}
# {'name': 'lizzy', 'sex': 'female'}
nums = [1,1,2,2,3,3]
a = {x for x in nums}
# {1, 2, 3}
nums = [1,1,2,2,3,3]
a = {x for x in nums if x % 2 !=0}
# {1, 3}
전체적으로 dict나 set 모두 list comprehension과 패턴이 같아 따로 기재하지 않았다.