2017-11-04 2 views
1

Dies kann eine unendliche Liste von Zahlen sein, Bisher kann ich nicht herausfinden, wie man die erste und letzte der Liste ohne zu wissen wo die Liste endet. Wenn die Liste ist (1,2,3,4,5) sollte die Ausgabe sein (5,2,3,4,1) Wirklich fest, erste Sprache, fragen, ob jemand Hilfe anbieten kann!Nehmen Sie eine Python-Liste als Parameter und ändern Sie den Listenparameter durch Austauschen der ersten und letzten Elemente

def swapFirstAndLast(list): 
    for position in range(0, len(list)): 
     list[position] = 
     list[position] = 
+3

wie funktionieren, wenn es eine unendliche Liste von Zahlen ist, dann ist das letzte Element nicht rechnerisch zugänglich, dh es keine Letztes Element. Ich denke, diese Annahme ist ein wenig mehrdeutig. –

+0

Vermeiden Sie die Namensliste '' 'list()' ist ein Python, das zum Erstellen von Listenobjekten vorgesehen ist. – progmatico

+0

Was passiert, wenn 'list' =' [1] ' – GiantsLoveDeathMetal

Antwort

3

Ich nehme an, Sie nicht eine unendliche Liste von Zahlen bedeuten, dass nicht in den Speicher passen, sondern eine Liste von jeder möglichen Größe. Nun, Sie kennen immer die letzte Position einer Liste in Python. Es wird immer die Länge der Liste minus eins:

my_list[len(my_list) - 1] 

Python list Objekte handlicher auch negative Indizierung unterstützen, so dass die oben verkürzt werden kann:

my_list[-1] 

So die ersten zu tauschen und die letzte Element, einfach tun:

my_list[0], my_list[-1] = my_list[-1], my_list[0] 

Hinweis, die über ein nettes kleines Feature von python ist, oft in Sprachen, die Sie ar e gezwungen Elemente tauschen eine temporäre Variable:

temp = my_list[0] 
my_list[0] = my_list[-1] 
my_list[-1] = temp 
0
def swap_first_and_last(some_list): 
    some_list[0], some_list[-1] = some_list[-1], some_list[0] 

wird unter

>>> L1 
[1, 2, 3] 
>>> swap_first_and_last(L1) 
>>> L1 
[3, 2, 1] 
>>> 
+1

@GiantsLoveDeathMetal was würden Sie zurückgeben? Es scheint, als wäre die Rückkehr von "None" hier sinnvoll. –

+0

Ye, nein, es ist legitim. :) – GiantsLoveDeathMetal

+1

Listen sind veränderbar, wenn sie als Parameter übergeben werden, ändere ich eigentlich das Original, keine Notwendigkeit für 'list_b = func (list_a)'. 'func (list_a)' wird durch Nebenwirkung tun. Aber es ist auch wichtig, implizite Aktionen wie diese für Lesbarkeit (oder Sicherheit) zu vermeiden – progmatico

Verwandte Themen