udemy.py_Section 5 - (5) List Comprehension

Gomi_kery·2022년 9월 13일

udem.py

목록 보기
19/28
post-thumbnail

Comprehension

💬 파이썬에서 iterable(반복적) 오브젝트를 생성하기 위한 방법. 크게 4가지로 구분

List Comprehension (LC)

lc = [ lists for lists in iterable object ]

  • [] 안에 사용되는 변수(요소)명은 동일해야함.
  • 리스트를 빠르게 만드는 독특한 방식.
  • for문과 .append()를 사용하여 반복적으로 리스트를 만드는 경우 좋은 대안이 됨.
# 일반적인 리스트를 만드는 방법
meter = [3,0.7,5,10]

yard = []
for lenght in meter:
	yard.append(meter*3.281)
    
yard
> [9.843, 2.2967, 16.405, 32.81]

			▲ 비교용 ▼

# comprehension으로 만드는 방법
meter = [3,0.7,5,10]
yard = [lenght*3.281 for lenght in meter]

yard
> [9.843, 2.2967, 16.405, 32.81]

- 문자열 직접 사용


lc = [st for st in 'water']
lc
> ['w','a','t','e','r']

- 문자열을 담은 변수명 사용

obj = "water"
lc = [st for st in obj]
lc
> ['w','a','t','e','r']

- range() + 연산

# 1번째 변수에 연산을 사용할 수 있음.
lc = [ com*3 for com in range(0,6) ]
# 3의 배수 인 리스트 생성

lc
> [0, 3, 6, 9, 12, 15]

- range() + 연산 + if 문 사용

lc = [ com*3 for com in range(0,6) if com%2 == 0]
# 3의 배수인 리스트 중에서 짝수만 반환.

lc
> [0, 6, 12]

- range() + 연산 + if/else 문 사용

lc = [ com*3 if com%2==0 else 'ODD' for com in range(0,6)]
# 3의 배수인 리스트 중에서 짝수는 반환하고 홀수면 ODD를 출력한다.

lc
> [0, 'ODD', 6, 'ODD', 12, 'ODD']

중첩 반복문 사용 가능

# 일반적인 방법
my_lc = []

for x in [1,2,3]:
	for y in [10,20]:
    	my_lc.append(x*y)

my_lc
> [10,20,20,40,30,60]

			▲ 비교용 ▼

# comprehension
my_lc = [x*y for x in [1,2,3] for y in [10,20]]

my_lc
> [10,20,20,40,30,60]


아래의 3개는 강의에서는 다루지 않지만
List Comprehension을 이해하기 위해 구글링을 하던 중에 알게 되었으며,
최대한 간단하게만 작성하고 추후에 추가적으로 작성하려고 한다.

Set Comprehension (SC)

  • Set을 빠르게 만드는 방법.
  • list comprehension과 동일하지만 list가 아닌 Set을 생성.
sc = [ 요소 for 요소 in 'iterable object'('문자열'or 변수명 등) ]

Dict Comprehension (DC)

  • Dict를 빠르게 만드는 방법.
dc = {key:value for key, value in }

Generator Expression (GE)

  • 한번에 하나의 요소만 반환하는 Generator 생성.
profile
QA. 손으로 할 수 있는 모든 것을 좋아합니다.

0개의 댓글