【发布时间】:2020-11-27 20:55:15
【问题描述】:
我有一个列表如下:
l1=[['a1','a2','a3'],['b1','b2'],['c1','a1']]
我想要一个字典列表如下:
[{"start":"a1","end":"ä2"},
{"start":"a2","end":"a3"},
{"start":"a3","end":"a1"},
{"start":"b1","end":"b2"},
{"start":"c1","end":"a1"}
]
我尝试了以下代码并得到了索引超出范围的异常:
for val in list_listedges:
for i in range(0,len(val)):
dict_edges["start"]=val[i]
dict_edges["end"]=val[i+1]
我正在寻找可以产生相同结果的有效解决方案或上述代码的增强。此外,3 不是一个固定数字。它也可能是 4 或 5。在这种情况下,我需要所有元素互相配对
【问题讨论】:
-
当
i是最后一个索引时,val[i+1]在列表之外。 -
在最后一次迭代中
i会是什么?同时i+1会是什么? -
既然你想让它环绕,请使用
(i+1)%len(val) -
是的,我刚刚解决了这个问题。那我怎样才能让它变得更好呢?
-
为什么只有 2 个元素的列表不像 3 个元素的列表那样环绕?
标签: python python-3.x list python-2.7