私はpythonを試していますが、私がやっていることのコンテキストでエラーメッセージを理解しようとして立ち往生しています。
私は理解をいじっていて、複数の入力セットを持つリスト/辞書の理解を作成するパターンを見つけようとしています(これが可能であると仮定します):
注:ここで入力セットという単語は、内包表記の入力領域を意味します。setbuilder 表記法では、Python がその内包表記 [LIST の X の Y] を導出した場所から、Y は出力関数、X は変数、LIST は入力セットです。
次の作業コードがあるとします。
from random import randint
mydict = {k: 0 for k in range(10)}
result = {randint(0,9): v + 1 for v in mydict.values()}
それについて特別なことをしようとしているわけではありません。これは期待どおりに動作しないため、有用なコードではありません。ディクショナリ内のすべての要素の値は、ランダム ジェネレーターによって指定された要素だけではなく、1 になります。私の唯一の目的は、入力セットのタプルを使って作業を開始するための基礎を築くことです。
from random import randint
mydict = {k: 0 for k in range(10)}
result = {k: v + 1 for k, v in (randint(0,9), mydict.values())}
このオプションは私に与えます: TypeError: 'int' object is not iterable
.
入力セットを交換して解凍すると、次のようになります。
result = {k: v + 1 for *v, k in (mydict.values(), randint(0,9))}
しかし、このオプションは私に与えます:TypeError: can only concatenate list (not "int") to list
これらのエラーは、言語の文法が理解できないことをしようとしているために表示されているのでしょうか、それともコードを修正できる何かが欠けているのでしょうか?