Ak máte zoznam, napíšte program Python na konverziu daného zoznamu na reťazec. Existujú rôzne situácie, s ktorými sa môžeme stretnúť, keď je zadaný zoznam a konvertujeme ho na reťazec v Pythone.
Napríklad prevod na reťazec zo zoznamu reťazcov alebo zo zoznamu celých čísel.
Príklad
Input: ['Geeks', 'for', 'Geeks'] Output : Geeks for Geeks Explanation: The Input is of list data type but the output is of string datatype>
Program na konverziu zoznamu na reťazec
- Použitie slučky for
- Použitie metódy .join().
- IN porozumenie zoznamu spevov
- Použitie map() funkciu
- Použitie funkcie enumerate
- Použitie v operátorovi
- Pomocou metódy functools.reduce
- Pomocou metódy str.format
- Použitie rekurzie
Preveďte zoznam Python na reťazec pomocou cyklu for
Iterujte zoznam pomocou pre slučku a priebežne pridávajte prvok pre každý index do nejakého prázdneho reťazca a takto bude konečný reťazec, ktorý máme, dátového typu string
Python3
# Python program to convert a list to string> def> listToString(s):> ># initialize an empty string> >str1>=> ''> ># traverse in the string> >for> ele>in> s:> >str1>+>=> ele> ># return string> >return> str1> # Driver code> s>=> [>'Geeks'>,>'for'>,>'Geeks'>]> print>(listToString(s))> |
>
>Výkon
techcodeview.com>
Časová zložitosť: O(n)
Pomocný priestor: O(n)
Previesť zoznam Python na reťazec pomocou metódy join().
Funkcia listToString(s), ktorá berie ako vstup zoznam s. Vo vnútri funkcie sa inicializuje prázdny reťazec str1. The funkciu join(). potom vráti výsledok spojenia prvkov vstupného zoznamu s do jedného reťazca pomocou znaku medzery ako oddeľovača. Kód ovládača inicializuje zoznam s, zavolá funkciu listToString(s) a vypíše výsledok spojenia prvkov zoznamu s medzerami.
Poznámka: Čo ak však zoznam obsahuje ako prvok reťazec aj celé číslo? V týchto prípadoch nebude vyššie uvedený kód fungovať. Pri pridávaní do reťazca ho musíme previesť na reťazec.
Python3
# Function to convert> def> listToString(s):> ># initialize an empty string> >str1>=> ' '> ># return string> >return> (str1.join(s))> > > # Driver code> s>=> [>'Geeks'>,>'for'>,>'Geeks'>]> print>(listToString(s))> |
>
>Výkon
Geeks for Geeks>
Časová zložitosť: O(n)
Pomocný priestor: O(n)
Preveďte zoznam na reťazec pomocou porozumenia zoznamu
Tu budeme používať porozumenie zoznamu previesť zoznam na reťazec, ako nižšie uvedený kód ukazuje implementáciu
Python3
# Python program to convert a list to string using list comprehension> s>=> [>'I'>,>'want'>,>4>,>'apples'>,>'and'>,>18>,>'bananas'>]> # using list comprehension> listToStr>=> ' '>.join([>str>(elem)>for> elem>in> s])> print>(listToStr)> |
>
>Výkon
I want 4 apples and 18 bananas>
Časová zložitosť : Časová zložitosť programu je O(n), kde n je dĺžka zoznamu s, pretože každý prvok zoznamu sa iteruje raz.
Zložitosť priestoru: Pomocná priestorová zložitosť programu je O(n) pretože vytvára nový zoznam reťazcov pomocou porozumenia zoznamu.
Skonvertujte zoznam na reťazec pomocou funkcie map().
Použi metóda map(). pre mapovanie str (pre prevod prvkov v zozname na reťazec) s daným iterátorom, zoznam. Ako je uvedené nižšie, kód je implementácia pomocou funkcie map().
Python3
# Python program to convert a list to string using list comprehension> > s>=> [>'I'>,>'want'>,>4>,>'apples'>,>'and'>,>18>,>'bananas'>]> # using list comprehension> listToStr>=> ' '>.join(>map>(>str>, s))> print>(listToStr)> |
>
>Výkon
I want 4 apples and 18 bananas>
Časová zložitosť : The t ime zložitosť tohto kódu je O(n), kde n je dĺžka zoznamu s.
Zložitosť priestoru: Priestorová zložitosť tohto kódu je O(n), kde n je dĺžka zoznamu s.
List to String použitím enumeračná funkcia
Kód skonvertuje prvky zoznamu na jeden reťazec a oddelí ich medzerami. Iteruje prvky s, konvertuje každý prvok na reťazec a spája ich pomocou oddeľovača medzery. Výsledný reťazec sa potom vytlačí.
Python3
s>=> [>'I'>,>'want'>,>4>,>'apples'>,>'and'>,>18>,>'bananas'>]> listToStr>=> ' '>.join([>str>(elem)>for> i,elem>in> enumerate>(s)])> print>(listToStr)> |
>
>Výkon
I want 4 apples and 18 bananas>
Časová zložitosť: O(n)
Pomocný priestor: O(n)
Zoznam do reťazca pomocou v operátorovi
Kód iteruje každý prvok i v zozname s a vytlačí ho. End= určuje, že za každým prvkom má byť vytlačená medzera namiesto znaku nového riadku, výsledkom čoho sú prvky vytlačené na rovnakom riadku oddelené medzerami.
Python3
s>=> [>'Geeks'>,>'for'>,>'Geeks'>]> for> i>in> s:> >print>(i,end>=>' '>)> |
>
>Výkon
Geeks for Geeks>
Časová zložitosť: O(n)
Pomocný priestor: O(n)
Previesť zoznam na Pomocou metódy functools.reduce
Kód používa funkciu Zníženie () z modul functools na spojenie prvkov zoznamu s do jedného reťazca. Aplikuje funkciu lambda lambda a, b: a + + str(b) na sekvenčné zreťazenie každého prvku b s predchádzajúcim výsledkom a. Výsledný reťazec sa potom vytlačí.
Python
from> functools>import> reduce> s>=> [>'I'>,>'want'>,>4>,>'apples'>,>'and'>,>18>,>'bananas'>]> listToStr>=> reduce>(>lambda> a, b : a>+> ' '> +>str>(b), s)> print>(listToStr)> |
>
>Výkon
I want 4 apples and 18 bananas>
Časová zložitosť: Časová zložitosť poskytnutého kódu Python je O(n), kde n je počet prvkov vo vstupnom zozname
Zložitosť priestoru: Priestorová zložitosť kódu je O(n), kde n je počet prvkov vo vstupnom zozname s.
List to String pomocou metódy str.format
Jedným z ďalších prístupov na konverziu zoznamu na reťazec v Pythone je použitie metóda str.format . Táto metóda vám umožňuje zadať šablónu reťazca a potom vyplniť zástupné hodnoty prvkami v zozname.
Napríklad:
Python3
lst>=> [>'Geeks'>,>'for'>,>'Geeks'>]> # Convert the list to a string using str.format> result>=> '{} {} {}'>.>format>(>*>lst)> print>(result)># Output: Geeks for Geeks> #This code is contributed by Edula Vinay Kumar Reddy> |
>
>Výkon
Geeks for Geeks>
Tento prístup má tú výhodu, že je možné presne určiť, ako majú byť prvky v zozname formátované, pomocou formátovacích zástupných symbolov v šablóne reťazca. Môžete napríklad určiť počet desatinných miest pre čísla s pohyblivou rádovou čiarkou alebo šírku a zarovnanie výstupného reťazca.
java print
Python3
lst>=> [>1.2345>,>'good'> ,>3.4567>]> # Convert the list to a string using str.format> result>=> '{:.2f} {} {:.2f}'>.>format>(>*>lst)> print>(result)># Output: 1.23 2.35 3.46> #This code is contributed by Edula Vinay Kumar Reddy> |
>
>Výkon
1.23 good 3.46>
Časová zložitosť: Časová zložitosť vyššie uvedených prístupov bude závisieť od dĺžky zoznamu. Napríklad v metóde 1 prechádzame zoznamom a pridávame každý prvok do reťazca, takže časová zložitosť bude O(n), kde n je dĺžka zoznamu.
Podobne časová zložitosť ostatných metód bude tiež O(n).
Zložitosť priestoru: Priestorová zložitosť všetkých vyššie uvedených metód bude tiež O(n), pretože vytvárame nový reťazec veľkosti n na uloženie prvkov zoznamu.
Previesť zoznam Python na reťazec pomocou rekurzie
Kód rekurzívne konvertuje zoznam l na reťazcové slovo zreťazením jeho prvkov. Začína od počiatočného indexu, pripája aktuálny prvok k slovu a pokračuje v procese až do konca zoznamu. Výsledný reťazec sa potom vytlačí.
Python3
def> list_string(start, l, word):> >if> start>=>=> len>(l):> >return> word># base condition to return string> >word>+>=> str>(l[start])>+>' '> # concatenating element in list to word variable> >return> list_string(start>+>1>, l, word)># calling recursive function> # Driver code> l>=> [>'Geeks'>,>'for'>,>'Geeks'>]># defining list> print>(list_string(>0>, l, ''))> |
>
>Výkon
Geeks for Geeks>