Python tarjoaa meille useita tapoja kääntää luettelo. Käymme läpi joitain monista tekniikoista, joilla luettelo otetaan käyttöön Python voidaan kääntää.
Esimerkki:
Input: list = [4, 5, 6, 7, 8, 9] Output: [9, 8, 7, 6, 5, 4] Explanation: The list we are having in the output is reversed to the list we have in the input.>
Listan kääntäminen Pythonissa
Alla on lähestymistapoja, joita käsittelemme tässä artikkelissa:
- Käyttämällä viipalointi tekniikka
- Listan kääntäminen vaihtamalla nykyiset ja viimeiset numerot kerrallaan
- Käyttämällä käänteistä() ja käänteinen() sisäänrakennettu toiminto
- Käyttää kahden pisteen lähestymistapa
- Käyttämällä insert() toiminto
- Käyttämällä listan ymmärtäminen
- Listan kääntäminen käänteiseksi käyttämällä Nuhjuinen
1. Käänteinen Luettelo käyttämällä viipalointitekniikkaa
Tässä tekniikassa luettelosta tehdään kopio, eikä luetteloa lajiteta paikoilleen. Kopion luominen vaatii enemmän tilaa kaikkien olemassa olevien elementtien säilyttämiseen. Tämä kuluttaa enemmän muistia. Tässä käytämme viipalointi tekniikka kääntää luettelomme Pythonissa.
Python 3
# Reversing a list using slicing technique> def> Reverse(lst):> > new_lst> => lst[::> -> 1> ]> > return> new_lst> lst> => [> 10> ,> 11> ,> 12> ,> 13> ,> 14> ,> 15> ]> print> (Reverse(lst))> |
>
>Lähtö
[15, 14, 13, 12, 11, 10]>
Aika monimutkaisuus: Päällä)
Aputila: Päällä)
2. Käänteinen luettelo vaihtamalla nykyiset ja viimeiset numerot kerrallaan
Tässä on lähestymistapa:
Jos arr[], koko, jos taulukon pituus on 1, niin palauta arr. elif taulukon pituus on 2, vaihda ensimmäinen ja viimeinen numero ja palauta arr. muussa tapauksessa alusta i=0. Tee silmukalla i koossa//2 ja vaihda ensimmäinen nykyinen ja viimeinen nykyinen luku, jos ensimmäisen ja seuraavan numeron indeksit eivät ole samat, vaihda sitten seuraava ja viimeinen seuraavista numeroista ja lisää sitten i+=2, ja silmukan jälkeen palauta arr.
Python 3
#Python program to reverse an array> def> list_reverse(arr,size):> > #if only one element present, then return the array> > if> (size> => => 1> ):> > return> arr> > > #if only two elements present, then swap both the numbers.> > elif> (size> => => 2> ):> > arr[> 0> ],arr[> 1> ],> => arr[> 1> ],arr[> 0> ]> > return> arr> > > #if more than two elements presents, then swap first and last numbers.> > else> :> > i> => 0> > while> (i//2): #swap present and preceding numbers at time and jump to second element after swap arr[i],arr[size-i-1]=arr[size-i-1],arr[i] #skip if present and preceding numbers indexes are same if((i!=i+1 and size-i-1 != size-i-2) and (i!=size-i-2 and size-i-1!=i+1)): arr[i+1],arr[size-i-2]=arr[size-i-2],arr[i+1] i+=2 return arr arr=[1,2,3,4,5] size=5 print('Original list: ',arr) print('Reversed list: ',list_reverse(arr,size)) #This contributed by SR.Dhanush> |
>
>Lähtö
Original list: [1, 2, 3, 4, 5] Reversed list: [5, 4, 3, 2, 1]>
Aika monimutkaisuus: O(log2(n)), missä n on annetun taulukon pituus.
Aputila: O(1)
3. Käänteinen luettelo käyttämällä sisäänrakennettua Käänteinen()- ja Reverse()-funktiota
Käyttämällä päinvastainen () voimme kääntää luettelon ja a list_reverseiterator luodaan objekti, josta voimme luoda listan käyttämällä list()-tyyppistä valua. Tai voimme myös käyttää luetteloa käänteinen() toiminto kääntää luettelo paikoillaan.
Python 3
lst> => [> 10> ,> 11> ,> 12> ,> 13> ,> 14> ,> 15> ]> lst.reverse()> print> (> 'Using reverse() '> , lst)> print> (> 'Using reversed() '> ,> list> (> reversed> (lst)))> |
>
>
alleviivaus alasLähtö
Using reverse() [15, 14, 13, 12, 11, 10] Using reversed() [10, 11, 12, 13, 14, 15]>
Aika monimutkaisuus: O(n), missä n on listan lst pituus.
Aputila: O(1), koska se muuttaa alkuperäistä luetteloa paikallaan eikä luo uutta luetteloa.
4. Käänteinen luettelo käyttämällä kaksiosoittimen lähestymistapaa
Tässä menetelmässä julistamme kaksi osoitinta (periaatteessa aloitusindeksi ja loppuindeksi, olkoon 'vasen' ja 'oikea'). Kun skannaamme luetteloa, vaihdamme kussakin iteraatiossa elementit indeksissä 'vasemmalla' ja 'oikealla'.
Vasen osoitin siirtyy eteenpäin ja oikea osoitin taaksepäin. Jatkamme prosessia 'ensimmäiseen' <'viimeiseen'. Tämä toimii sekä parilliselle määrälle että parittomille elementeille.
Python 3
# Reversing a list using two-pointer approach> def> reverse_list(arr):> > left> => 0> > right> => len> (arr)> -> 1> > while> (left # Swap temp = arr[left] arr[left] = arr[right] arr[right] = temp left += 1 right -= 1 return arr arr = [1, 2, 3, 4, 5, 6, 7] print(reverse_list(arr))> |
>
>Lähtö
[7, 6, 5, 4, 3, 2, 1]>
Aika monimutkaisuus : PÄÄLLÄ)
Aputila: O(1)
5. Kääntele lista käyttämällä insert()-funktiota
Tässä menetelmässä emme kumoa luetteloa paikallaan (muokkaa alkuperäistä luetteloa) emmekä luo kopiota lista . Sen sijaan jatkamme kohteiden lisäämistä luettelon 0. hakemistoon, tämä kääntää luettelon automaattisesti.
Python 3
# input list> lst> => [> 10> ,> 11> ,> 12> ,> 13> ,> 14> ,> 15> ]> # the above input can also be given as> # lst=list(map(int,input().split()))> l> => []> # empty list> # iterate to reverse the list> for> i> in> lst:> > # reversing the list> > l.insert(> 0> , i)> # printing result> print> (l)> |
>
>Lähtö
[15, 14, 13, 12, 11, 10]>
Aika monimutkaisuus: Päällä)
Aputila: O(n), missä n on listan pituus.
6. Käännä luettelo käänteisesti käyttämällä luettelon ymmärtämistä
Tässä tekniikassa luetteloa ei ole järjestetty paikoilleen. Alkuperäisen taulukon kopiota ei vaadita. Käytämme listan ymmärtäminen kääntääksesi taulukon ja palauttaaksesi luettelon.
Etsimme taulukon pituuden ja toistamme sen yli käyttämällä aluetta. Nyt, korvataksemme viimeisen elementin ensimmäisellä, vähennämme alkuperäisen luettelon pituuden iteraattorin indeksistä.
Python 3
original_list> => [> 10> ,> 11> ,> 12> ,> 13> ,> 14> ,> 15> ]> new_list> => [original_list[> len> (original_list)> -> i]> > for> i> in> range> (> 1> ,> len> (original_list)> +> 1> )]> print> (new_list)> |
>
>Lähtö
[15, 14, 13, 12, 11, 10]>
Aika monimutkaisuus: O(n), jossa n on alkuperäisen_listan pituus.
Aputila: Päällä),
7. Kääntele luettelo Numpylla
Tässä aiomme käyttää nuhjuinen paketti :
Alusta syöttöluettelo my_listMuunna oma_luettelo 1D-numpy-taulukoksi käyttämällä np.array(my_list)Käännä taulukon järjestys käyttämällä my_array[::-1]Muunna käänteinen nuhjuinen array takaisin luetteloon käyttämällä .tolist()
Tulosta käänteinen luettelo
Python 3
import> numpy as np> # Input list> my_list> => [> 4> ,> 5> ,> 6> ,> 7> ,> 8> ,> 9> ]> # Convert the list to a 1D numpy array> my_array> => np.array(my_list)> # Reverse the order of the array> reversed_array> => my_array[::> -> 1> ]> # Convert the reversed array to a list> reversed_list> => reversed_array.tolist()> # Print the reversed list> print> (reversed_list)> |
>
>
Lähtö:
[9, 8, 7, 6, 5, 4]>
Aika monimutkaisuus: Päällä)
Aputila: Päällä)
Olemme keskustelleet monista tavoista kääntää luettelo Pythonissa. Olemme myös maininneet niiden aikamonimutkaisuuden ja aputilan antaaksemme sinulle oikean käsityksen niiden käsittelynopeudesta.
Toivottavasti tämä artikkeli auttoi sinua ymmärtämään tapoja kuinka kääntää python-luettelo? ja voit helposti kääntää luettelon Pythonissa.