관리 메뉴

솜씨좋은장씨

[Python] 이중 for 문 한 줄로 작성하는 방법 본문

Programming/Python

[Python] 이중 for 문 한 줄로 작성하는 방법

솜씨좋은장씨 2020. 9. 15. 11:29
728x90
반응형

for 문을 한 줄로 작성하는 방법

ex ) 여러개의 단어가 들어있는 리스트 중에서 길이가 3 이상인 단어만 남기고 싶을 경우

words = ["솜씨좋은장씨", "티스토리", "블로그", "파이썬", "for", "프로그래밍", "반복"]
new_words = [ "솜씨좋은장씨", "티스토리", "프로그래밍" ]

 

기존 코드

new_words = []

for word in words:
    if len(word) > 3:
        new_words.append(word)

한 줄로 작성

new_words = [ word for word in words if len(word) > 3 ]

 

이중 for 문을 한 줄로 작성하는 방법

ex ) 여러  단어들이 담겨있는 2차원 리스트에서 각 리스트 별로 길이가 4 이상인 단어만  남기고 싶은 경우

words = [ [ "솜씨좋은장씨", "파이썬", "프로그래밍", "스터디" ],
		  [ "Python", "NLP", "ML", "DL" ],
          [ "leetCode", "BaekJoon", "HackerRank" ],
          [ "멀티캠퍼스", "COMPAS", "DACON", "Kaggle" ] ]
new_words = [ "솜씨좋은장씨", "프로그래밍", "Python", "leetCode", "BaekJoon", 
              "HackerRank", "멀티캠퍼스", "COMPAS", "DACON", "Kaggle" ]

 

기존 코드

new_words = []

for word_list in words:
    for word in word_list:
        if len(word) > 4:
            new_words.append(word)

 

한 줄로 작성

new_words = [ word for word_list in words for word in word_list if len(word) > 4]

비교 코드

for i in v: 
    for j in i: 
        print(j)

[j for i in v for j in i]

 

읽어주셔서 감사합니다~

Comments