Hallo ich bin neu zu Python und ich versuche, mein erstes Programm zu finden Cluster von Knoten, die +1 Zeichen haben. Ich habe eine Datei mit 3 Spalten (Startknoten, Knoten endet, Zeichen zwischen den Knoten) wie folgt aus:Setzen Sie ein Element an der richtigen Stelle in defaultdict
1 2 1
1 3 1
2 3 1
2 4 -1
2 5 1
3 6 -1
4 7 -1
4 9 -1
Ich schaffe das Diagramm ein i speichern alle adjacencies in einem Wörterbuch. Jetzt möchte ich in einem anderen Wörterbuch (defaultdict (Liste)) alle Supernodes (Team-Knoten, die +1 Zeichen zwischen ihnen haben) speichern. Also schrieb ich den folgenden Code:
G = nx.Graph()
G = nx.read_edgelist('example.txt', delimiter='\t', nodetype=int, data=(('sign', int),))
adjacencies = {}
supernodes = defaultdict(list)
for i in G.nodes:
adjacencies[i] = list(G.neighbors(i))
flag = 0
if flag == 0:
for node in G.nodes:
supernodes[node].append(node)
flag = 1
break
else:
for i in G.nodes():
for j in adjacencies[i]:
if G.get_edge_data(i,j) == 1:
for v in supernodes.values():
ich den Code hier aufhören, weil ich weiß nicht, wie man die richtige Position von dict ein Element zu setzen. Die Schritte, die ich tun möchte, sind: ich habe Superknoten wie:
1 : [1,2,3,5]
2 : [4]
3 : [6,8]
etc
1. check if edge(i,j) is +1 and then
2. if i is in supernodes then add j in the same list where i is
3. if j is in supernodes then add i in the same list where j is
4. if i and j is not in supernodes the add a new list in supernodes and add
i,j elements
Dies berechnet die Nachbarn von jedem Knoten, der +1 Zeichen hat. Ich versuche etwas anderes zu machen. Ich habe dieses Diagramm hier: [link] (http://images.slideplayer.com/12/3525987/slides/slide_24.jpg) und ich muss Superknoten finden. Die Supernodes im Graphen sind die Blobs. –
um ganz ehrlich zu sein Sie Frage ist irreführend. Siehe Bearbeiten, um das zu erhalten, was Sie die Menge der Superknoten nennen. – rodgdor