我的代码我有一个字典,其中有两个列表与 zip() 函数相结合
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])
之后,我(在另一个函数中)创建一个名为的新列表self.sum_l
,其中将每个数字列表的平均值放入新的列表列表中(在此示例中,我得到两个平均值)。
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
列表。但问题是,它需要前两个(在我的情况下)。这使得输出绝对不正确:
num1 letter
4.6 9.8
所以我的问题是,我应该怎么做才能防止这种情况发生。我已经尝试了很多东西。甚至试图计算字典中值的总和,但我遇到了错误