2015-10-09 10 views
5

(Se qualcuno può suggerire un titolo migliore, andare avanti e modificare).Come estendere un elenco Python a lunghezza fissa per numero variabile di caratteri?

dato un listlista1 cui lunghezza esatta non è nota, ma per i quali è noto sarà sempre inferiore o uguale a 5, sto cercando di compilare un separato vuoto listlista2, di lunghezza fissa 5, con i valori in list1, imbottitura con stringhe vuote se la dimensione list2 è inferiore a 5.

es se list1 = [1,2,3]

poi lista2 dovrebbe essere [1,2,3, '', '']

e così via.

Quindi:

if len(list1) < 5: 
    list2.extend(list1) 
    # at this point, I want to add the empty strings, completing the list of size 5 

Qual è il modo più grazioso di raggiungimento di questo (che determina il numero di stringhe vuote per aggiungere)?

risposta

5
list2 = list1 + [''] * (5 - len(list1)) 
+1

Il massimo dei voti per l'eleganza. – Pyderman

0

Un altro modo:

extend_list = lambda list, len=5, fill_with='': map(lambda e1, e2: e1 if e2 is None else e2, [fill_with]*len, list) 
print extend_list([1, 2, 3]) 
>>> [1, 2, 3, '', ''] 
print extend_list([1, 2], 3, '?') 
>>> [1, 2, '?'] 
Problemi correlati