有很多建議,但我無法堅持下去。我在下面最接近的解決方案。數(shù)據(jù)是這樣的:my_list = ([1, [2, 3], 4, [5, [6 , [], [8, 9]], 10]], 8)和一個函數(shù)def convert(G, l, d): z = [] if isinstance(x, list): print(x) z.append(convert(G, x, d)) else: print(x) z.append([v[d] for n,v in G.nodes(data=True) if n == l]) return z執(zhí)行:print(convert(G, my_list, "name"))它給出空數(shù)組,但 print(x) 按原樣獲取源。我想我很接近。問題是我不知道如何將latif n == l作為整數(shù)而不是列表傳遞。編輯輸出: (['a', ['b', 'c'], 'd', ['e', ['f' , [], ['g', 'h']], 'j']], 'g) 以相同的格式(嵌套)。自定義函數(shù)只獲取每個元素 (int) 并從 dict (letter) 返回其屬性。另一個嘗試:my_list = ([1, [2, 3], 4, [5, [6 , [], [8, 9]], 10]], 8)z = []def convert(G, l, d): z.append([convert(G, x, d) if isinstance(x, list) else [v[d] for n,v in G.nodes(data=True) if n == x]]) return zz = convert(G, my_`list, "name")print(z)這部分是一個自定義函數(shù):[v[d] for n,v in G.nodes(data=True) if n == l]所以 G 可以是任何東西。你可以把它當(dāng)作[...]例如: G.nodes = {0: {'name': 'a'}, 1: {'name': 'b'}, 2: {'name': 'c'}, 3: {'name': 'd'}}
3 回答

慕妹3242003
TA貢獻(xiàn)1824條經(jīng)驗 獲得超6個贊
遵循您的結(jié)構(gòu)的簡化版本可能如下所示:
def v(x):
return x + 1
def convert(l):
z = []
for x in l:
if isinstance(x, list):
z.append(convert(x))
else:
z.append(v(x))
return z
這導(dǎo)致預(yù)期的嵌套:
>>> convert([[1, [2, 3], 4, [5, [6 , [], [8, 9]], 10]], 8])
[[2, [3, 4], 5, [6, [7, [], [9, 10]], 11]], 9]
添加回答
舉報
0/150
提交
取消