python - 按顺序附加到嵌套列表中的列表元素字典
问题描述
我创建了一个字典,其中的键表示相对距离和空列表的值。我想用嵌套列表中的条目填充这些值——空列表——这些条目是相对距离的值。我的问题是,当我填充字典的值时,它的条目没有按照它们在嵌套列表中出现的顺序填充。
这是我最接近解决问题的方法:
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]] }
非常感谢任何帮助或意见,谢谢!
解决方案
字典是无序的!插入元素的顺序与迭代它们时出现的顺序不同。
不仅如此,而且在
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))
推荐阅读
- javascript - HTML 符号未在 Angular 中动态加载
- r - 根据分数重新排列r markdown pdf中部分的顺序
- python - SQLAlchemy ORM 自动加载关系
- python - 请指导在推送到 Firebase 时循环遍历 DataFrame
- html - Bootstrap - 在响应模式下垂直对齐 2 个 div
- python - pythonanywhere上的dlib安装问题
- java - 排除从父 pom 继承的子 pom 中的依赖项
- android - Android服务安装目录
- python - 如何获得工作时间排名前 5 位的姓名,谁使用 pandas 数据框工作得最多
- singularity-container - 复制文件夹在 Singularity 3 中不再起作用