我创建了一个字典,其中的键代表相对距离和值为空列表。我想用嵌套列表中的相对距离值填充这些值-空列表。我的问题是,当我填充字典的值时,它的条目没有按照它们在嵌套列表中出现的顺序填充。
这是我最接近解决问题的方法:
relDistDic = { 'a':[], 'b': [] } # dictionary with relative distances
relDist = [[1,2,3], [4,5,6], [7,8,9], [10,11,12] ] #nested list with dstncs
for v in relDistDic.values():
for element in relDist:
if len(v) < 2 :
v.append(element)
我想得到以下输出:
{ 'a':[[1,2,3], [4,5,6]], 'b': [[7,8,9], [10,11,12]] }
但是我却得到了:
{ 'a':[[1,2,3], [4,5,6]], 'b': [[1,2,3], [4,5,6]] }
非常感谢任何帮助或评论,谢谢!
答案 0 :(得分:1)
字典无序!用 not 插入元素的顺序与遍历元素时出现的顺序相同。
不仅如此,而且
for v in relDistDic.values():
for element in relDist:
if len(v) < 2:
v.append(element)
对于relDist
中的每个值,您只需附加前两个(因为if len(v) < 2
)。也许您是打算在附加relDist
时从pop()
中删除这些项目?
为此,请使用for v in relDistDic.values():
for i in range(2):
if len(relDist) > 0:
v.append(relDist.pop(0))
。
dplyr
答案 1 :(得分:0)
那又怎么样:
relDist = [[1,2,3], [4,5,6], [7,8,9], [10,11,12] ] #nested list with dstncs
relDistDic = { 'a': relDist[:2], 'b': relDist[2:] } # dictionary with relative distances