language/Python

[자료형] List Comprehension

브라우니란 2023. 11. 15. 16:39

 

 

 

1. 기본 구조

[표현식 for 변수 in 자료형]
# 기존 방식
y = []

for i in range(1,11,1):
    y.append(i*2)

 

# 리스트 컴프리헨션 방식
y = [i*2 for i in range(1,11)]

 

 

 

2. 이중 구조

# 이중 for문 방식
x = [1,2,3]
y = [4,5,6]


for i in x:
    for j in y:
        print(i * j)

 

# 리스트 컴프리헨션 방식
x = [1,2,3]
y = [4,5,6]
 
z = [i * j for i in x for j in y]

 

 

 

 

3. 기본 if문

x = [2, -10, 5, -9, 5, -3]
negative = []

for i in x:
    if i < 0 :
        negative.append(i)

 

x = [2, -10, 5, -9, 5, -3]

negative = [i for i in fruits if i < 0]

 

 

 

 

3. if - else 문

  • (중요) 조건에 따른 출력 형태는 앞쪽에 표현식을 작성한다.
  • if 문에 대해 참값인 경우에 대해 출력되는 값은 맨 처음에 나오도록 한다.
x = [2, -10, 5, -9, 5, -3]
# 원하는 y 리스트 속 데이터 형태 y = [2, '음수', 5, '음수', 5, '음수']

y = []
for i in x:
    if i < 0:
        y.append('음수')
    else:
        y.append(i)

 

x = [2, -10, 5, -9, 5, -3]
# 원하는 y 리스트 속 데이터 형태 y = [2, '음수', 5, '음수', 5, '음수']

# 방법1
y = [i if i >= 0 else '음수' for i in fruits]

# 방법2
y = ['음수' if i < 0 else i for i in x]

 

 

 

 

 

 


 

 

 

 

 

 

파이썬에서는 List 자료구조를 활용하여 for 문을 활용한 로직을 작성해야 할 때,

되도록이면 리스트 컴프리헨션 방식을 통해 로직을 작성하는 것이 성능면에서 더 좋기 때문에 이 방법을 사용하는 것을 추천한다.