【发布时间】:2021-11-23 08:49:42
【问题描述】:
我有一个字典,里面有五个键,每个键对应三个值:
mySubList1 = [[1, 3, 4, 5, 6, 7, 1, 2, 3, 4, 5, 6], [2, 8, 4, 6, 7, 8, 9, 10, 11, 12, 12, 13]]
mySubList2 = [[0, -1, 3, 4, 4, 6, -2, 3, 1, 0, -20, -2], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15]]
mySubList3 = [[2, 2, 3, 4, 5, 6, 6, 5, 4, 3, 2, 1], [-1, -3, 44, 22, 4, 7, 7, 8, 9, 10, 11, 20]]
my_dictionary = {
"Dimensions: ": [],
"Shape: ": [],
"Mean: ": [],
"Median: ": [],
"Standard Deviation: ": [],
}
for i in mySubList1, mySubList2, mySubList3:
print(i)
my_dictionary['Dimensions: '].append(np.ndim(i))
my_dictionary['Shape: '].append(np.shape(i))
my_dictionary['Mean: '].append(np.mean(i))
my_dictionary['Median: '].append(np.median(i))
my_dictionary['Standard Deviation: '].append(np.std(i))
我要做的是迭代每个键值对,格式为: 设置 1 键 1:值 1 键 2:值 1 键 3:值 1 键 4:值 1 关键5:价值1
设置 2 键 1:值 2 键 2:值 2 键 3:值 2 键 4:值 2 关键5:价值2
等等。
到目前为止我所拥有的是:
for key, value in my_dictionary.items():
print(key, value)
这给了我不想要的格式输出:
键1:值1、值2、值3
任何指针?
【问题讨论】:
-
"每个键对应五个键和三个值" 不,键总是与一个值相关联
-
由于您希望数据以按子列表分组的属性列表的形式出现,您是否考虑过将数据结构切换为字典列表而不是列表字典?
-
@Malcolm 我的意思是,这真的取决于最终的用例。一般来说,我会说,字典列表很少是正确的方法。通常,您会通过反序列化一些 JSON 或 Yaml 来得到它。但是如果你要这样做,你真的应该定义自己的记录类型并使用 that 而不是 dict。
-
当您不需要对数据使用方法时,为您的记录创建一个新类并没有真正的优势。一个简单的 dict 正是你想要的。当您使用 csv.DictReader 时,您会得到这种类型的结构。我几乎不会说 csv.DictReader 这样做不“正确”。当然,这取决于你想对数据做什么,但听起来这就是@LG1 的要求。
标签: python dictionary iteration