我們正在撰寫一個將稀疏串列轉換為字典的函式
sp2([ [a,0,0],
[0,e,0],
[0,h,i] ]) == {(0,0):a, (1,1):e, (2,1):h, (2,2):i}
我想要這種動作
我在一維中寫了一些東西
def sparse(ns):
dic = {}
index = 0
for n in ns:
if n != 0:
dic[index] = n
index = 1
return dic
結果:
# print(sparse([])) # {}
# print(sparse([0,0,3,0,0,0,0,0,0,7,0,0])) # {2: 3, 9: 7}
你如何將一維的東西變成二維的?
uj5u.com熱心網友回復:
只需添加另一個內部回圈:
def sparse(ns):
dic = {}
for i, row in enumerate(ns):
for j, val in enumerate(row):
if val != 0:
dic[(i, j)] = val
return dic
uj5u.com熱心網友回復:
你可以用一個簡單的嵌套字典理解來做到這一點enumerate:
>>> a, e, h, i = 'a', 'e', 'h', 'i'
>>> m = [ [a,0,0],
... [0,e,0],
... [0,h,i] ]
>>> {(i, j): x for i, row in enumerate(m) for j, x in enumerate(row) if x}
{(0, 0): 'a', (1, 1): 'e', (2, 1): 'h', (2, 2): 'i'}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/490913.html
上一篇:如何將sklearn的標準縮放器與make_pipeline一起使用?
下一篇:如何從網頁中獲取JSON?
