如何创建在不同键上具有不同数量值的字典?
how to create a dictionary having different number of values at different keys?
问题.1)我想创建一个字典,它由8个键组成,一些键有2个值,一些键有3个值。如何在 python.
中创建这种字典
我一直在尝试使用嵌套循环,但我的逻辑不起作用。
期望输出
dict_a = { 1:[0,1], 2:[2,3], 3:[4,5], 4:[6,7], 5:[8,9], 6:[10,11], 7:[12,13,14], 8:[15,16,17] }
问题.2 )如果我们成功创建了dict_a
那么,在第二部分,我想合并dict_a的多个值dict_b,如下所示。
例如:- 在 dict_b = { 1:[1,2], 2:[2,3]......}
中,这里 1:[1,2]
表示我想合并 [=54= 的第一个和第二个 'values' ] 字典,它会给我 [0, 1, 2, 3]
。同样 2:[2,3]
会给我 [2,3,4,5]
dict_b = { 1:[1,2], 2:[2,3], 3:[3,4], 4:[4,5], 5:[5,6], 6:[6,7], 7:[7,8] }
我实际上成功地尝试了上述方法,但是对于 dict_a
中的两个键 7th
和 8th
,我只想与前两个值合并,即当 dict_b
转到第 7 个键 7:[7,8]
,我希望结果是 [12,13,15,16]
而不是 [12,13,14,15,16,17].
但是我下面用的方法不可避免的会全部合并
dict_a = { 1:[0,1], 2:[2,3], 3:[4,5], 4:[6,7], 5:[8,9], 6:[10,11], 7:[12,13,14], 8:[15,16,17] }
dict_b = { 1:[1,2], 2:[2,3], 3:[3,4], 4:[4,5], 5:[5,6], 6:[6,7], 7:[7,8] }
a_list = []
for i in dict_b:
tem = []
a_list.append(tem)
for j in dict_b[i]:
tem.extend(dict_a[j])
print(tem)
期望的输出-
[0, 1, 2, 3]
[2, 3, 4, 5]
[4, 5, 6, 7]
[6, 7, 8, 9]
[8, 9, 10, 11]
[10, 11, 12, 13]
[12, 13, 15, 16]
如果您只想合并前 2 个值,请使用切片。
改变
tem.extend(dict_a[j])
至
tem.extend(dict_a[j][:2])
问题.1)我想创建一个字典,它由8个键组成,一些键有2个值,一些键有3个值。如何在 python.
中创建这种字典我一直在尝试使用嵌套循环,但我的逻辑不起作用。
期望输出
dict_a = { 1:[0,1], 2:[2,3], 3:[4,5], 4:[6,7], 5:[8,9], 6:[10,11], 7:[12,13,14], 8:[15,16,17] }
问题.2 )如果我们成功创建了dict_a
那么,在第二部分,我想合并dict_a的多个值dict_b,如下所示。
例如:- 在 dict_b = { 1:[1,2], 2:[2,3]......}
中,这里 1:[1,2]
表示我想合并 [=54= 的第一个和第二个 'values' ] 字典,它会给我 [0, 1, 2, 3]
。同样 2:[2,3]
会给我 [2,3,4,5]
dict_b = { 1:[1,2], 2:[2,3], 3:[3,4], 4:[4,5], 5:[5,6], 6:[6,7], 7:[7,8] }
我实际上成功地尝试了上述方法,但是对于 dict_a
中的两个键 7th
和 8th
,我只想与前两个值合并,即当 dict_b
转到第 7 个键 7:[7,8]
,我希望结果是 [12,13,15,16]
而不是 [12,13,14,15,16,17].
但是我下面用的方法不可避免的会全部合并
dict_a = { 1:[0,1], 2:[2,3], 3:[4,5], 4:[6,7], 5:[8,9], 6:[10,11], 7:[12,13,14], 8:[15,16,17] }
dict_b = { 1:[1,2], 2:[2,3], 3:[3,4], 4:[4,5], 5:[5,6], 6:[6,7], 7:[7,8] }
a_list = []
for i in dict_b:
tem = []
a_list.append(tem)
for j in dict_b[i]:
tem.extend(dict_a[j])
print(tem)
期望的输出-
[0, 1, 2, 3]
[2, 3, 4, 5]
[4, 5, 6, 7]
[6, 7, 8, 9]
[8, 9, 10, 11]
[10, 11, 12, 13]
[12, 13, 15, 16]
如果您只想合并前 2 个值,请使用切片。
改变
tem.extend(dict_a[j])
至
tem.extend(dict_a[j][:2])