私のコードには、zip()関数と組み合わせた2つのリストを持つ辞書があります
self.dict = OrderedDict(zip(self.name,self.unit))
リストは引数として与えられます...var=class([[1,2,4,7],["y","y","t"],[11.1,12.3,6]],name=["num1","letter","num2"])
ある点では、各括弧内の項目に数字のみがあるかどうかをチェックする関数が必要です。たとえばint=[1,2,3]
、それが当てはまる場合、プログラムは各数値のみのリストの平均を計算します。そして、値を num1 = 3.5 num2 = 9.8
(表として)出力します:
num1 num2
3.5 9.8
まず、これを使用して新しいリストを作成します。
for i in range(len(self.unit)):
if all(isinstance(item, (int,float)) for item in self.unit[i]):
self.new_l.append(self.unit[i])
その後、(別の関数で) in という名前の新しいリストを作成し、self.sum_l
各数値リストの平均をリストの新しいリストに入れます (この例では、2 つの平均を取得します)。
self.sum_l.append([sum(self.new_1[i])/float(len(self.new_1[i]))])
その後、self.name
とself.sum_1
リスト を使用する新しい辞書を作成します。
self.nov_slovar = OrderedDict(zip(self.ime, self.seznam_vsot))
これは正常に機能しますが、私が直面している問題は...新しい辞書を作成すると、リストにリストがあるため、コードは新しい辞書を作成するときにリストから多くの要素を取得しname
ますself.sum_1
。しかし問題は、最初の 2 つが必要だということです (私の場合)。そして、それは出力を絶対に間違ったものにします:
num1 letter
4.6 9.8
だから私の質問は、それが起こらないようにするために何をすべきかということです。私は多くのことを試しました。辞書で値の合計を計算しようとしても、エラーが発生します