有很多建议,但我无法坚持下去。我在下面最接近的解决方案。数据是这样的:
my_list = ([1, [2, 3], 4, [5, [6 , [], [8, 9]], 10]], 8)
和一个函数
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
执行:
print(convert(G, my_list, "name"))
它给出空数组,但 print(x) 按原样获取源。我想我很接近。问题是我不知道如何将latif n == l作为整数而不是列表传递。
编辑
输出: (['a', ['b', 'c'], 'd', ['e', ['f' , [], ['g', 'h']], 'j']], 'g) 以相同的格式(嵌套)。自定义函数只获取每个元素 (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 z
z = convert(G, my_`list, "name")
print(z)
这部分是一个自定义函数:
[v[d] for n,v in G.nodes(data=True) if n == l]
所以 G 可以是任何东西。你可以把它当作[...]
例如: G.nodes = {0: {'name': 'a'}, 1: {'name': 'b'}, 2: {'name': 'c'}, 3: {'name': 'd'}}
慕妹3242003
相关分类