innate
50
2021-06-11 01:26:10
2
115

파이썬 리스트 비교 관련 올립니다.


안녕하세요 파이썬을 공부하고있는 학생입니다
한 리스트(ipa) 기준으로 다른리스트(wordlist)와 비교하는 이중 for문을 사용헸습니다
제 생각으론 한 사이클 도는데 없을경우 newlist변수에 공백으로 표시하고싶은대 생각대로 되질않아
고민끝에 올립니다..

비교해서 있으면 newlist에 저장 ipa글자가 없으면 newlist에 공백표시하고싶습니다
이과정을 선언된 ipa순서대로 진행하고싶습니다.

z = 0
ipa = ['i','ɪ','e','æ','a','ɔ','u','ʊ','ə','ʌ','ɜ','ɔɪ','aʊ','o','p','b','t','d','k','g','m','n','ŋ','s','z','f','v','θ','ð','ʃ','ʒ','h','tʃ','dʒ','j','w','r','l']
num = []
wordlist = []
newlist = []
newnum = []
with open('test.txt'encoding = 'utf-8'as f:
    k = f.read()
    word = list(k)
    res = Counter(word)


num = list(res.values())  # 사용횟수 
wordlist = list(res.keys()) # 사용된 글자



for i in ipa:
    z = 0
    for j in wordlist:
        if i == j:
            newlist.append(j)
        elif i != j:
            z += 1
        elif z == len(wordlist):
            newlist.append("")


위에 코드올리구요
ipa리스트에 선언된 글자 하나씩 wordlist에 비교하면서 newlist변수에
차례대로 저장하고있습니다 ipa글자 하나를 비교하는대 없을경우 newlist에 공백으로 넣고싶습니다
생각이 나질않아 올립니다 조언 부탁드립니다!

res변수에 저장된 내용은
Counter({"'": 11605, '\n': 5805, '(': 5804, ',': 5804, ')': 5804, 'ə': 2803,
'ˈ': 2262, 'ɪ': 1373, 't': 1225, 'r': 1106, 'n': 1076, 'æ': 1009, 'l': 723,
's': 718, 'ˌ': 691, 'k': 618, 'd': 570, 'm': 500, 'e': 489, 'i': 464,': 343,
'p': 309, 'ɔ': 270, 'ʃ': 239, 'v': 223, 'a': 206, 'z': 181, 'g': 177, 'ŋ': 173,
'ʊ': 170, 'ʤ': 145, 'u': 141, 'f': 141, 'j': 103, 'o': 100, 'ʧ': 73, 'w': 68,
'θ': 66, ' ': 56, 'h': 39, 'ʒ': 23, '"': 6, 'ð': 5, '\uf})
이러합니다
0
  • 답변 2

  • JadeKim
    259
    2021-06-11 01:39:22

    이렇게 수정하면 문제가 될까요?? 제가 질문 이해를 잘 한건지 모르겠네요

    for i in ipa:
        if i in wordlist:
            newlist.append(i)
        else:
            newlist.append("")


  • innate
    50
    2021-06-11 12:54:36

    감사합니다!  한번 보고 이렇게해도된다고???? 생각하고 해봤더니 되네요 지금 이해하는중입니다

    감사합니다!

  • 로그인을 하시면 답변을 등록할 수 있습니다.