试图为 4x4 板坐标创建一个 python 字典

我想要所需的输出 -


coord = 

{0: (0, 0), 1: (0, 1), 2: (0, 2), 3: (0, 3),

4: (1, 0), 5: (1, 1), 6: (1, 2),

7: (1, 3),8: (2, 0), 9: (2, 1), 10: (2, 2),

11: (2, 3),12: (3, 0), 13: (3, 1), 14: (3, 2), 15: (3, 3)}


使用


coord = {}


for i in range(0,16):


    if i < 4:

        for j in range (0,4):

            coord[i] = (0,j)

    elif   i > 3 and i <8:

        for j in range (0,4):

            coord[i] = (1,j)

    elif i > 7 and i < 12:

        for j in range (0,4):

            coord[i] = (1,j)

    elif i > 11 and i < 16:

        for j in range (0,4):

            coord[i] = (1,j)

print (coord)

得到输出为 {0: (0, 3), 1: (0, 3), 2: (0, 3), 3: (0, 3), 4: (1, 3), 5: (1, 3), 6: (1, 3), 7: (1, 3), 8: (1, 3), 9: (1, 3), 10: (1, 3), 11: (1, 3), 12: (1, 3), 13: (1, 3), 14: (1, 3), 15: (1, 3)}


无法构建逻辑以获得所需的输出。


慕田峪4524236
浏览 124回答 2
2回答

慕姐4208626

最直接的方法是使用嵌套的 for 循环。k = 0d = {}for i in range(4):&nbsp; &nbsp; &nbsp;for j in range(4):&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;d[k] = (i, j)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;k += 1或者,如果您更喜欢 oneliners,则双重理解&nbsp;dict( enumerate ( [ (i, j) for i in range(4) for j in range(4)] ))&nbsp;要获得一个简单的 for 循环或推导式,我们可以使用整数算术运算符 //(整数除法)和 % 余数&nbsp;{ k : (k // 4, k % 4) for k in range(16) }这可能更优雅和快速

HUX布斯

我们可以枚举整数的笛卡尔积itertools.product。import itertools as it{i: x for i, x in enumerate(it.product(range(3+1), repeat=2))}# {0: (0, 0),#&nbsp; 1: (0, 1),#&nbsp; 2: (0, 2),#&nbsp; 3: (0, 3),#&nbsp; ...#&nbsp; 15: (3, 3)}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python