【发布时间】:2020-12-12 10:56:57
【问题描述】:
这里的 z 是一个 dict() 的列表。
z = [{'loss': [1, 2, 2] , 'val_loss':[2,4,5], 'accuracy':[3,8,9], 'val_accuracy':[5,9,7]},
{'loss': [1, 2, 2] , 'val_loss':[2,4,5], 'accuracy':[3,8,9], 'val_accuracy':[5,9,7]},
{'loss': [1, 2, 2] , 'val_loss':[2,4,5], 'accuracy':[3,8,9], 'val_accuracy':[5,9,7]},
{'loss': [1, 2, 2] , 'val_loss':[2,4,5], 'accuracy':[3,8,9], 'val_accuracy':[5,9,7]},
{'loss': [1, 2, 2] , 'val_loss':[2,4,5], 'accuracy':[3,8,9], 'val_accuracy':[5,9,7]},
{'loss': [1, 2, 2] , 'val_loss':[2,4,5], 'accuracy':[3,8,9], 'val_accuracy':[5,9,7]},
{'loss': [1, 2, 2] , 'val_loss':[2,4,5], 'accuracy':[3,8,9], 'val_accuracy':[5,9,7]},
{'loss': [1, 2, 2] , 'val_loss':[2,4,5], 'accuracy':[3,8,9], 'val_accuracy':[5,9,7]},
{'loss': [1, 2, 2] , 'val_loss':[2,4,5], 'accuracy':[3,8,9], 'val_accuracy':[5,9,7]},
{'loss': [1, 2, 2] , 'val_loss':[2,4,5], 'accuracy':[3,8,9], 'val_accuracy':[5,9,7]},]
我想在一个单独的列表中附加所有字典值 'loss' 和类似的 'val_loss'、'accuracy'、'val_accuracy'。 为此,我尝试编写以下 python 代码:
a = b = c = d = []
for lis in z:
a.append(lis['loss'])
b.append(lis['val_loss'])
c.append(lis['accuracy'])
d.append(lis['val_accuracy'])
但是当我尝试打印列表 print(len(a)) 的长度时,输出是 40 而不是 10?
我只想将所有'loss' 附加到a。
【问题讨论】:
-
您的问题是您将所有变量分配给同一个列表,因此附加到一个附加到所有变量。这在此处演示:` >>> a = b = [] >>> a.append(1) >>> print(b) >>> [1] ` 分别初始化它们。
-
要补充@CoryNezin 所说的内容,您可以写
a, b, c, d = [], [], [], []作为作业 -
@CoryNezin,thanx... 我是在一次初始化时犯了错误。这 >>> a = [] >>> b = [] >>> c = [] >>> d = [] 解决了这个问题。
标签: python list dictionary append iteration