質問: c.most_common()によりword,numのタプルのリストができました。 それをwords, countsに代入することで, タプルの要素を別々に表示できるという主旨のコードです。 --- 疑問点 zip()というのはことなる2つのリストを引数としていれることで、そのリストの順番が同じものをタプルのセットとして返してくれると解釈しています。 なので、mcは一つのリストなのでzipをなぜ使うのかよくわかりません。 たぶん*が関係しているのではと思ったので、*を消してみると too many values to unpack (expected 2) というエラーがでました。 アンパックというのを調べるとそれは変数にアスタリスクをつけると、変数に対して代入する要素が多かった場合に、アスタリスクのついた変数にすべてタプルとして代入されるというものでした。 あくまで、変数にアスタリスクをつける処理であって、zip(*)については言及されておらず、解決しなかったので、質問させていただきます。 回答いただけると幸いです。 mac 10.14.1
回答: `*`をつけることで、イテラブル内の要素が個々の引数としてzipに渡されるため、`words, counts = zip(('人民', 3), ('の', 3), ('による', 1), ('ため', 1), ('政治', 1))`が実行されるのと同じことになります。 そのため、各引数となっているタプル0番目の要素で作られたタプルがwordに、1番目の要素で作られたタプルがcountsに入ります。