Anteporre il prefisso per gli elementi della lista con l’elenco di comprensione

Avere una lista come questa:

['foo','spam','bar']

è possibile, usando la lista di comprensione, per ottenere questa lista come risultato?

['foo','ok.foo', 'spam', 'ok.spam', 'bar', 'ok.bar']
  • Si tratta di un “elenco di comprensione”, non “elenco di comprensione” 😉
  • “Aggiungere il prefisso” è un ossimoro, dovrebbe essere anteporre il prefisso
  • accidenti ragazzi, sono dure

 

2 Replies
  1. 31
    In [67]: alist = ['foo','spam', 'bar']
    
    In [70]: [prefix+elt for elt in alist for prefix in ('','ok.') ]
    Out[70]: ['foo', 'ok.foo', 'spam', 'ok.spam', 'bar', 'ok.bar']
    • Grazie per la collaborazione. Ho usato la stessa idea per il riempimento di un elenco con la lista vuota elementi in questo modo: [[]] + [vuoto+[] per char a [[i] for i in range(len(testo))] per vuoto in (char[])] che si traduce in una lista in questo modo: [[],[i],[],[o],[],[u],[]]. Quindi, questo è utile per di più che la creazione di una lista di stringhe concatenate se qualcuno è interessato.
  2. 1

    Con list comprehensions, si stanno creando nuovi elenchi, non aggiungere elementi a un elenco esistente (che possono essere rilevanti per davvero dataset di grandi dimensioni)

    Perché non ho una list comprehension comunque? Solo perché python li ha non è male codifica la prassi di utilizzare un ciclo for.

Lascia un commento