第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

試圖為 4x4 板坐標(biāo)創(chuàng)建一個 python 字典

試圖為 4x4 板坐標(biāo)創(chuàng)建一個 python 字典

慕田峪4524236 2021-06-29 10:52:36
我想要所需的輸出 -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)}無法構(gòu)建邏輯以獲得所需的輸出。
查看完整描述

2 回答

?
慕姐4208626

TA貢獻1852條經(jīng)驗 獲得超7個贊

最直接的方法是使用嵌套的 for 循環(huán)。


k = 0

d = {}

for i in range(4):

     for j in range(4):

         d[k] = (i, j)

         k += 1

或者,如果您更喜歡 oneliners,則雙重理解


 dict( enumerate ( [ (i, j) for i in range(4) for j in range(4)] )) 

要獲得一個簡單的 for 循環(huán)或推導(dǎo)式,我們可以使用整數(shù)算術(shù)運算符 //(整數(shù)除法)和 % 余數(shù)


 { k : (k // 4, k % 4) for k in range(16) }

這可能更優(yōu)雅和快速


查看完整回答
反對 回復(fù) 2021-07-06
?
HUX布斯

TA貢獻1876條經(jīng)驗 獲得超6個贊

我們可以枚舉整數(shù)的笛卡爾積itertools.product。


import itertools as it



{i: x for i, x in enumerate(it.product(range(3+1), repeat=2))}

# {0: (0, 0),

#  1: (0, 1),

#  2: (0, 2),

#  3: (0, 3),

#  ...

#  15: (3, 3)}


查看完整回答
反對 回復(fù) 2021-07-06
  • 2 回答
  • 0 關(guān)注
  • 134 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號