Kom igångKom igång gratis

Tidsfilter på kanter

Nu ska du öva på att filtrera grafen med ett villkor tillämpat på kanterna. Det ger dig träning i att skriva listförståelser med villkor.

Kom ihåg att du kan importera datetime-objekt från modulen datetime. I grafen finns metadatanyckeln date, som är kopplad till ett datetime-objekt som värde.

Den här övningen är en del av kursen

Nätverksanalys i Python – fortsättningskurs

Visa kurs

Övningsinstruktioner

  • Instansiera en ny graf med namnet G_sub.
  • Lägg till noder från den ursprungliga grafen (inklusive nodmetadata) med metoden .add_nodes_from().
  • Lägg till kanter med en listförståelse som innehåller ett villkor på kanternas datum – datumet ska vara tidigare än 2004-05-16. Gör så här:
    • Använd metoden .add_edges_from() med en listförståelse som argument.
    • Ututtrycket i listförståelsen är (u, v, d). Iterera över alla kanter i G och kontrollera om d['date'] är mindre än datetime(2004, 5, 16).

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

import networkx as nx
from datetime import datetime

# Instantiate a new graph: G_sub
G_sub = ____

# Add nodes from the original graph
____

# Add edges using a list comprehension with one conditional on the edge dates, that the date of the edge is earlier than 2004-05-16.
G_sub.____([(____, ____, ____) for u, v, d in G.edges(data=True) if d['____'] < ____(____,____,____)])
Redigera och kör kod