Ara*_*ida 2 python loops python-3.x
在一开始我有一个主列表,我打算将所有内容放入:
master_list = []
Run Code Online (Sandbox Code Playgroud)
我有数据存储在嵌套列表中,如下所示:
multi_list = [[1,2,3,4,5],[6,7,8,9,10]]
Run Code Online (Sandbox Code Playgroud)
最终结果需要将此数据转换为这样的dicts列表:
master_list
>> [{'x1':1,'x2':2,'y1':3,'y2':4,'id':5},{'x1':6,'x2':7,'y1':8,'y2':9,'id':10}]
Run Code Online (Sandbox Code Playgroud)
这就是我的最终目标.我实现这一目标的方法如下:
multi_list = [[1,2,3,4,5],[6,7,8,9,10]]
master_list = []
iterating_dict = {}
for n in multi_list:
for idx,i in enumerate(['x1','x2','y1','y2','id']):
iterating_dict[i] = n[idx]
master_list.append(iterating_dict)
master_list
>>[{'x1':6,'x2':7,'y1':8,'y2':9,'id':10},{'x1':6,'x2':7,'y1':8,'y2':9,'id':10}]
Run Code Online (Sandbox Code Playgroud)
最终发生的是第二项multi_list存储两次.我希望它存储所有项目的转换后的dicts multi_list.我认为这意味着它append不在循环的正确位置.但是,当我将它放在循环中时,它不会添加任何内容master_list.如果没有append超出范围,我不能再进一步.
在python中有哪些常规方法来解决这种困难?
您需要在外部for循环的每次迭代中重置迭代dict.否则它将继续累积值.
这样的事情应该有效:
for n in multi_list:
iterating_dict = {}
for idx,i in enumerate(['x1','x2','y1','y2','id']):
iterating_dict[i] = n[idx]
master_list.append(iterating_dict)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
45 次 |
| 最近记录: |