1. ホーム
  2. python learning

穴の中 TypeError: サポートされていないオペランドタイプ(s) for /: str' と 'int' です。

2022-02-18 10:56:20

インターネット上の多くのブログを調べた結果、まず、エラーメッセージのTypeError: unsupported operand type(s) for /.から、unsorted operand type(s) for /: 'str' and 'int', it is a type error: Operational type is not supported for integers and string, the reason of my error is the same as. これは はやや似ているが同一ではなく、答えを探しに来た人が見ることができ、自分の特定の問題を解決するためのアイデアを開くことができる:。

目次

1. エラーの説明

2. エラー理由

3. 個人概要


1. エラーの説明

この作品は私のプロジェクトのコードの一部で、型エラーが報告されたもので、これが修正されたコードです。

    def getPosCount(self):
        """ lexical statistics, see that more """
       # sorted backwards, from largest to smallest
        res = sorted(self._wordPosCount.items(), key=lambda x:x[1], reverse=True)

        print("lexical statistics: ",res)
        print("Top 30%: ")
        for i in range(int(res.__len__()*0.3)):
           # here i should be the marker of this line in the lexical list, res[i][1] in what [1] means is not quite clear, did not find that
           # and do not know 'keyword + text number (you can go to commons/xml2dict.py run to see) how to operate
            print(self._totalWrodCount)
            print(res[i],'percentage:',res[i][1]/self._totalWrodCount,'keyword+text number (you can go to commons/xml2dict.py to run it):', self._wordPosList[res[i][0]])#res[i][0] of [ 0] refers to the position of n. i should be the loop length
            #question is res[i][1]/self._totalWrodCount replaced by res[i][0] will report TypeError: unsupported operand type(s) for /: 'str' and 'int'
            # seems to understand a little, [1] refers to ('n ', 1755) of 1755, replaced by [0] is to represent 'n', so will report a type error
        print("================================")


以下は、エラーが発生する前に修正したコードです。

    def getPosCount(self):
        """Word count, see which one is more """
        # totNum = sum(list(self._wordPosCount.values()))
        res = sorted(self._wordPosCount.items(), key=lambda x:x[1], reverse=True)# reverse sort, from largest to smallest

        print("Word count: ",res)
        print("Top 30%: ")
        for i in range(int(res.__len__()*0.3)):
                print(self._totalWrodCount)
            print(res[i],'Percentage:',res[i][0]/self._totalWrodCount,'keyword+text number (you can go to commons/xml2dict.py and run it):' , self._wordPosList[res[i][0]])
        print("================================")

print("lexical statistics": res)の結果を実行します。

Lexical statistics: [('n ', 1755), ('nr ', 412), ('v ', 337), ('ns ', 330), ('n n ', 313), ('j ', 216), ('vn ', 208), ('', 191), ('nt ', 142), ('n vn ', 134), ('nz ', 128), ('l ', 110), ('n v ', 102), ('eng ', 77), ('v n ', 74), ('ns n ', 73), ('nrt ', 49), ('m ', 49), ('t ', 35), ('vn n ', 34), ('nrfg ', 33), ('a ', 27), ('a n ', 25), ('nr n ', 24), ('j n ', 21), ('b n ', 20), ('v v ', 18), ('i ', 18), ('v vn ', 15), ('uv nr ', 13), ('d ', 12), ('m n ', 12), ('n nr ', 12), ('vn vn ', 11), ('ns v ', 11), ('n j ', 10), ('nz n ', 10), ('n an ', 10), ('n l ', 9), ('an ', 9), ('n ad ', 8), ('n ns ', 8), ('n n n n ', 8), ('n n n n ', 8), ('f j ', 8), ('b v ', 8), ('v vn vn ', 8), ('b ', 7), ('a j ', 7), ('nr v ', 7), ('ns vn ', 7), ('q n ', 7), ('eng n ', 6), ('nrt nr ', 6), ('ns nr ', 5), ('m m ', 5), ('nr nrt ', 5), ('nr ns ', 5), ('n a ', 5), ('nz v ', 5), ('ns ns ns ', 4), ('p m v ', 4), ('n zg ', 4), (' m t ', 4), ('s n ', 4), ('m ns ', 4), ('f n ', 4), ('t n ', 4), ('x m ', 4), ('v j ', 4), ('n t ', 4), ('vn v ', 4), ('ns nt ', 4), ('nr nr ', 3), ('n q ', 3), ('ns a n ', 3), ('ns a ', 3), ('n g ', 3), ('d n ', 3), ('nr nz ', 3), ('n nz ', 3), ('m a ', 3), ('n nt ', 3), ('ns n n ', 3), ('ns n n ', 3), ('ns nz ', 3), ('ns j ', 2), ('v nt ', 2), ('f n q ', 2), ('ns eng ', 2), ('a uj v ', 2), ('zg v ', 2), ('n b n ', 2), ('l vn ', 2), ('v nz ', 2), ('n eng ', 2), ('nr m ', 2), ('vn a ', 2), ('r n ', 2), ('n m ', 2), ('q ', 2), ('nz vn ', 2), ('d v ', 2), ('p m vn ' , 2), ('s vn ', 2), ('nrt n ', 2), ('nr m ng ', 2), ('n c ', 2), ('a vn ', 2), ('b v n ', 2), ('ad v ', 2), ('n vn n ', 2), ('s v ', 2), ('n v n ', 2), ('n v n ', 2), ('n n v n ', 2), ('n n vn ', 2), ('n n vn ', 2), ('n f vn ', 2), (' i n ', 2), ('q v ', 2), ('vn m ', 2), ('b n vn ', 2), ('v uj nrt p ', 2), ('n ns nt ', 1), ('ns n x ', 1), ('p nr n ', 1), ('a ns n ', 1), ('a m ', 1), ('nz l ', 1), ('nt n ', 1), ('l n ' , 1), ('zg m ', 1), ('n ns x nr v ', 1), ('ng d ', 1), ('v nr ', 1), ('f vn ', 1), ('f n n ', 1), ('v v zg ', 1), ('zg nz ', 1), ('ns nrt ', 1), ('z r n ', 1), ('nz m t ', 1), ('an a ul ', 1), ('n u n ', 1), ('m g ', 1), ('a t ', 1), ('nrt 

2. エラーの理由

置換 print(res[i],'Percentage:',res[i][1]/self._totalWrodCount,'keyword+text number (you can go to commons/xml2dict.py and run it to see):' , self._wordPosList[res[i][0]) in res[i][1] /self._totalWrodCount for res[i][0]/self._totalWrodCount, 'キーワード+テキスト番号(commons/xml2dict.pyにアクセスすれば分かります)' , self._wordPosList[self][0]) _totalWrodCountはエラーを報告します、理由は完全に単語のリストを理解していない、リストは、タプルで構成されているので、ここでは説明としてタプルの知識を使用する必要があります、タプル名[0]は、タプルの最初の値へのアクセス、および[1]はタプルへのアクセスを意味します 2番目の値、ここでiは、範囲()関数のiである。独自の理解では、語彙の様々なを参照することです、res[i][1]は、特定の語彙の下で統計情報を参照するなど、('n ', 1755)、res[0][1]は最初の0 nの指定語彙は、型はstr、後半1このタプル1755でnの統計数です、その型はint、そう時res[i][0]で置き換えられます型エラーが発生することです

3. 個人的なまとめ

知識をより深く理解するためには、ピットを摘み続けるしかないのです。リストやタプルとその便利な操作についてよく理解していないこと、ネストが発生すると明確な知識の必要性が曖昧になること、まだまだ足元を固めて実作業をしなければならないことが、ちょっと比較しにくいこのコードでわかりました。

これは、2つの異なるデータ型の違いと、それらが交差しないところを完全に理解するための間違いです(おそらく良いまとめではありません、どう表現したらいいかわかりません、言葉が足りません)、要するに、リスト、タプル、辞書について学び、それらの違いを理解し、ネストすることです