Python 자료구조 - For문과 List 초기화

Sumin Kim·2022년 4월 29일
0

Python Grammer

목록 보기
1/3
post-thumbnail

python 자료구조 부분 중 자꾸만 헷갈리는 리스트 부분 정리!!

나는 for문을 쓸때마다 초기화를 하지 않는가.... for 문 list(리스트) 초기화의 중요성

초기화 없이 이중 for 문으로 이용할 때,

result = []
lemmas = []

def lemmatization(sentences):
    for sentence in sentences:
        word2pos = pos_tagging(sentence)
            for token_dic in word2pos.items():
                lemmas.append([lemmatizer.lemmatize(token_dic[0],token_dic[1])])
            result.append(lemmas)
    return result

초기화 하면서 이중 for문을 같이 활용할때,

result = []

def lemmatization(sentences):
    for sentence in sentences:
        lemmas = []
        word2pos = pos_tagging(sentence)
            for token_dic in wor2pos.items():
                lemma = lemmatizer.lemmatize(token_dic[0], token_dic[1])
                lemmas.append(lemma)
            result.append(lemmas)
     return result

겉으로 볼때는 lemmas 리스트의 변수를 함수 밖과 안에 지정했다는 차이점 이외에는 없지만, 결과물은 확연하게 다르게 나타난다.

"그 이유는 바로 리스트 변수를 초기화 여부이다."

아래처럼 초기화를 하게 되면 원하는 문장마다 단어를 lemmatization해서 넣게 되겠지만, 첫번째처럼 초기화를 하지 않게 되면 단어가 쌓이게 되기 때문에 첫번째 문장, 두번째 문장, 그 이후의 문장의 단어들까지도 섞여서 나오게 된다.

앞으로는 리스트 초기화 해서 원하는 문장 만큼 잘 출력하자!!

profile
👩‍💻초보 researcher

0개의 댓글