嵌套For循环生成“列表索引超出范围”

2024-10-02 20:30:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图创建一组坐标,存储在字典中(每对坐标都有一个键,每次迭代都增加1)。如果有人能告诉我我的错误在哪里,那就太棒了。在

column = [100, 200, 300, 400, 500, 600]
row = [100, 200, 300, 400, 500, 600, 700]
slotcounter = 0
slotdict = {}
for j in row: 
    for i in column: 
        slotcounter += 1
        coordinate = [row[j],column[i]]
        slotdict[coordinate] = slotcounter
        #print(slotdict)

Tags: incoordinatefor字典错误columnrowprint
3条回答

其他人也提到了为什么你的代码没有达到你想要的效果。请注意itertools.product为您生成对:

from itertools import product

column = [100, 200, 300, 400, 500, 600]
row = [100, 200, 300, 400, 500, 600, 700]
slotcounter = 0
slotdict = {}
for coordinate in product(column, row):
   slotcounter += 1
   slotdict[coordinate] = slotcounter

编辑-使用enumerate和dict理解,这可以作为单个表达式来完成:

^{pr2}$

您可以尝试:

for j_index, j_value in enumerate(row): 
    for i_index,i_value in enumerate(column):
       .....
       # and here you can access indexes as well as value.

或者

^{pr2}$

为了使您的代码正常工作,您应该这样做:

for j in row:
    for i in column:
        slotcounter+=1
        coordinate = [j,i]
        slotdict[slotcounter] = coordinate

我不确定这是否是你想要的,尽管它给你一本有42个键的字典。在

相关问题 更多 >