티스토리 뷰

Python

[Python] List Comprehensions (2)

Dongi 2022. 2. 5. 02:39

 

 

 

안녕하세요 동기 여러분!

오늘은 새로운 리스트에 반복문에서 if문까지 한 줄에 때려 박는 방법에 대해 알아봅시다!

 

 

 

 

List Comprehensions (2)

 

nums = [5, 1, -9, -4, 2, 8]
positive_nums = []

for num in nums:
    if num < 0:
        positive_nums.append(num * -1)
    else:
        positive_nums.append(num)

print(positive_nums)

위의 코드는 nums 리스트의 요소가 음수이면 양수로 만들어 positive_nums로 추가해주고 양수이면 바로 positive_nums로 추가해줍니다.

 


 

이를 positive_nums = [ ]의 대괄호 안에 한줄에 넣어 줄 수 있습니다.

nums = [5, 1, -9, -4, 2, 8]
positive_nums = [num * -1 if num < 0 else num for num in nums]

print(positive_nums)
  1. 첫 번째 if문의 행동을 먼저 입력합니다. → num * -1
  2. if와 조건문을 입력합니다. → if num < 0
  3. else와 else문의 행동을 입력합니다. → else num
  4. 반복문을 입력합니다. → for num in nums

 


 

Else가 없는 경우

else가 없는 경우에는 좀 더 쉽게 적어 줄 수 있는데 위의 방법과 조금 다릅니다. (왜 이렇게 헷갈리게 만들어 놨는지...)

nums = [5, 1, -9, -4, 2, 8]
positive_nums = []

for num in nums:
    if num < 0:
        positive_nums.append(num * -1)
        
print(positive_nums)

위의 코드에서 else문만 삭제해서 nums 리스트의 요소가 음수일 경우에만 양수로 만들어서 positive_nums에 추가해주는 반복문입니다.

 


nums = [5, 1, -9, -4, 2, 8]
positive_nums = [num * -1 for num in nums if num < 0]
        
print(positive_nums)
  1.  if문의 행동을 먼저 입력합니다. → num * -1
  2.  반복문을 입력합니다. → for num in nums
  3. if와 조건문을 입력합니다. → if num < 0

 

else가 있고 없고에 따라 if와 조건문의 위치가 달라집니다. else가 있으면 조건문이 앞으로 오고 else가 없으면 뒤로 갑니다.

 

 


 

혹시나 해서 num * 1 if num < 0 for num in nums로 실행해봤습니다.

역시나 잘 못된 문장이라고 뜹니다.

 


 

혹시나 해서 elif도 넣어서 else의 방식과 같이 실행해봤습니다.

역시나 잘 못된 문장이라고 합니다.

elif가 있으면 그냥 쭈욱 풀어서 쓰자.

 


 

오늘의 느낌

오늘은 아아를 한잔 마시면서 포스팅을 하고 있기 때문에 기분이 몹시 좋습니닿ㅎ

'Python' 카테고리의 다른 글

[Python]Parameters & Arguments  (0) 2022.02.05
[Python] Function  (0) 2022.02.05
[Python] List Comprehensions (1)  (0) 2022.02.04
[Python] Nested Loops  (0) 2022.02.04
[Python] Loop Control: Continue  (0) 2022.02.04
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
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
글 보관함