我正在处理网络邻居列表的列表,这意味着每行中的项目数是不同的。我的原始代码有效:
public partial class ContactDetail
{
//other properties
[JsonIgnore]
public virtual Manager Manager { get; set; }
}
我可以通过对每组邻居使用列表理解来部分加快速度:
y = []
neighbors = [list of lists node-neighbors of varying lengths]
for i in range(len(neighbors): ## the length of all nodes
for j in range(len(neighbors[i]): ## the number of neighbors node(i) has
x = [i, neighbors[i][j]] ## makes a list of [node(i), neighbor(i)]
y.append(x) ## adds it to the end of the list
y = pd.DataFrame(y, columns = ['Source', 'Target'])
我真正想做的是对两个输入的数组进行矢量化处理,但是由于[i]用于查找len(neighbors [i]),因此会出现一个错误,即未定义'i'。
for i in range(len(neighbors)):
x = [(i, neighbors[i][j]) for j in range(len(neighbors[i]))]
y.extend(x)
y = pd.DataFrame(y, columns = ['Source', 'Target'])
我还尝试了一种嵌套列表理解,但它不喜欢它:
q = range(len(neighbors))
y = [(i, neighbors[i][j]) for i, j in q, len(neighbors[i])]
也尝试浏览两个列表不起作用:
y = [[(i, neighbors[i][j]) for j in range(len(neighbors[i]))] for i in q]