CONTENTS コンテンツ

ChatGPTを使ってPythonを学ぼう!(32)

ChatGPTを使ってPythonを学ぼう!

2024.03.01

 Python学習編32回目です。

 東京大学のPython学習ページで学んでいます。今回は6-1. 内包表記(2周目)

 今回はChatGPTはお休み…といいつつエラーの原因を聞くのには使った。

入力:
def sum_matrix(list1, list2):
return [list1[i][j]+list2[i][j] for i,j in range(len(list1))]
を実行したら
TypeError: cannot unpack non-iterable int object
のエラーが出ました。エラーの原因を教えてください。

出力:

このエラーメッセージ「TypeError: cannot unpack non-iterable int object」は、range(len(list1))から返される各要素が整数であるため、これを2つの変数ijにアンパック(展開)しようとした時に発生します。range関数は整数のシーケンスを生成しますが、このコードのコンテキストでは、2次元配列(リストのリスト)の各要素にアクセスしようとしているため、このアプローチは機能しません。

修正するためには、2つのネストされたループを使用して、外側のループでリストの各行にアクセスし、内側のループで各行の要素にアクセスする必要があります。

iとjに同時にrangeつけてi×jの繰り返しをするのはダメで、1回ずつrangeかけなさいってことか。間違ってる理由を過ごしえてくれると試しやすくていいね。

次回に続く

この記事をシェアする