1. ホーム
  2. python

[解決済み] 'ValueError: not enough values to unpack (expected 2, got 0)'.

2022-02-02 20:29:24

質問

Pythonでforループを使ってリストのリストを作成しようとしています。私の計画は、2つの別々のループを使用することです。1つのループは、小さなリストを置くための大きなリストを作成し、別のループは、小さなリストを作成し、大きなリストにそれらを追加することです。

これは、10×10のグリッドがある「バトルシップ」タイプのゲームを作るために使用されています。

これは、私が困っているコードの塊です。

for i in range(0,10):
    (newlist,(i))=[]

この具体的なコードは、それぞれ異なる名前を持つ新しいリストを10個作成することだけが目的です。例えば、このループの最初の循環では、次のようなリストを作成します。 list0 を、2回目の循環は list1 までとなります。 list9 .

理論的には、このコードに何の問題もないと思います。また、新しいリストを作成する代わりに、新しい変数に文字列を入れる場合にも動作します。

このプログラムを実行すると、必ずエラーが発生します。

ValueError: not enough values to unpack (expected 2, got 0)

なぜこのような現象が起こるのか全く分かりませんので、どなたかご教授いただければ幸いです。

解決方法を教えてください。

という変数があるようです。 list このリストには、いくつかのリストを入力する必要があります。この構文は、右側のutableから2つのデータを抽出するために使用されるので、あなたのコードは動作しません。明らかに [] は空なので 何もない を出力します。

こんな感じでいいんじゃないでしょうか。

your_list = [list() for x in range(9)] 

なお、変数 list というのも、同じ名前の組み込み関数があり、それは空リストを作成するものだからです。今現在、この変数によって組み込み関数にアクセスできなくなっています。

編集してください。 リストが10個必要な場合。

your_list = [[[] for x in range(9)] for y in range(10)]

次に your_list は、10のリストのリストを含むリストとなります。