Sto utilizzando il codice seguente per produrre 2 elenchi, elenco nomi e lista voti.Stampa di 2 elenchi uniformemente popolati fianco a fianco in modo uniforme
nameList[]
gradeList[]
for row in soup.find_all('tr'):
name = row.select('th strong')
grade = row.select('td label')
if grade and name:
if "/" in grade[0].text:
gradeList.append(grade[0].text)
nameShort = re.sub(r'^(.{20}).*$', '\g<1>...', str(name[0].text))
nameList.append(nameShort)
Produrre qualcosa di simile:
nameList = [“grade 1”,”grade 2222222222”,”grade 3”]
gradeList = [“1/1”,”2/2”,”100000/100000”]
voglio il programma per stampare gli elenchi in 2 colonne di pulizia, fianco a fianco. All'interno di ogni colonna, voglio che i dati siano allineati a sinistra. Le liste (senza esito negativo) saranno sempre popolate uniformemente. La prima colonna (nameList) non sarà mai più lunga di 25 caratteri. Quello che sto cercando potrebbe essere simile al seguente:
Assignment Grade
0 grade 1 1/1
1 grade 2222222222 2/2
2 grade 3 100000/100000
ho provato ad usare i panda e ha funzionato, ma la formattazione era strano e fuori luogo. Non si allinea alla sinistra come voglio. Credo che ciò sia accaduto perché i dati hanno ciascuno una lunghezza di carattere diversa in entrambi gli elenchi (mostrati sopra).
Che cos'è la definizione "fmt = '{: <8} {: <20} {}'"? Quando eseguo questo codice, il programma stampa l'elenco come 20 volte. –
@JacksonBlankenship, È una stringa di formato che indica a 'str.format' come formattare gli argomenti:' {: <8} 'è shrotcut per' {0: <8} '. '0' significa 0 ° (primo argomento),': 'inizia la specifica del formato,' <': allineamento a sinistra,' 8' significa larghezza. – falsetru
@JacksonBlankenship, Se vuoi saperne di più sulla sintassi della stringa Format, segui il link nella risposta o questa: [Format String Syntax] (https://docs.python.org/3/library/string.html#formatstrings) – falsetru