Domanda

La situazione:

Ogni pagina I raschiare ha elementi <input> con title= e value=

Non so cosa sta per essere sulla pagina.

Voglio avere tutti i miei dati raccolti in un unico tavolo alla fine, con una colonna per ogni titolo.

Quindi, in pratica, ho bisogno di ogni riga di dati per allinearsi con tutti gli altri, e se una riga non ha un certo elemento, allora dovrebbe essere vuoto (ma ci deve esserci qualcosa per mantenere l'allineamento).

ad es.

Prima pagina ha: {animal: cat, colour: blue, fruit: lemon, day: monday}

Seconda pagina ha: {animal: fish, colour: green, day: saturday}

Terza pagina ha: {animal: dog, number: 10, colour: yellow, fruit: mango, day: tuesday}

Poi la mia tabella risultante dovrebbe essere:

animal | number | colour | fruit | day
cat    | none   | blue   | lemon | monday
fish   | none   | green  | none  | saturday
dog    | 10     | yellow | mango | tuesday

Anche se sarebbe bene tenere l'ordine delle coppie title value, che so dizionari solito fare.

Quindi, in pratica, ho bisogno di generare colonne provenienti da tutto il titles (tenuti in ordine, ma in qualche modo fuse insieme)

Quale sarebbe il modo migliore per andare su questo senza conoscere tutti i titoli possibili e specificando esplicitamente un ordine per i valori da mettere in?

È stato utile?

Soluzione

Hai bisogno di un algoritmo di multipass. Ricordate tutte le pagine raschiato in una lista di dicts. Nel primo passaggio, andare oltre questa lista e raccogliere tutti i titoli in un set (), e creare un ordinamento (ad esempio, convertire alla lista sorta di loro in ordine alfabetico).

Nel secondo passaggio si stampa il tavolo e utilizzare il vostro ordine generato come nomi di colonna, estrarre i valori dai dizionari come necessario (inadempiente a vuoto per gestire i valori mancanti), ad esempio con dict.get (nome, "") .

Altri suggerimenti

vorrei suggerire che si potrebbe usare parametri opzionali, o in alternativa utilizzare costruttori di overload per popolare i valori:

Page(string animal = string.empty, 
int number = -999, string colour = string.empty, day = string.empty )

Uno che o memorizzare ogni coppia chiave / valore come tipo di oggetto e poi gettato dalla tue pagine.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top