Jestem po maturze z informatyki, pisałem w pythonie, podczas nauki operowałem ciągle na listach bo wydawały mi się ona najłatwiejsze. Zaznaczę że jestem samoukiem, więc możliwe że niechcący podczas edukacji pominąłem jakieś ważne informacje.
Teraz robiłem projekt hobbystycznie i jedna funkcja mi nie działała jak sobie życzyłem. Wyeksportowałem kluczowe elementy do osobnego pliku i naprawiłem program, ale znalazłem coś czego nie rozumiem.
Na potrzebę przykładu uprościłem funkcję, więc może wydawać się sposób trywialny, ale istota problemu jest dobrze ukazana. Funkcja miała kopiować ostatni element, umieszczać go zmienionym na końcu listy a następnie usuwać pierwszy element.
def move(ghost_stats):
head=ghost_stats[-1]
head+=1
ghost_stats.append(head)
ghost_stats=ghost_stats[1:]
return ghost_stats
def main():
ghost_stats=[7,8,9,10]
for i in range(5):
print(move(ghost_stats))
main()
konsola:
[8, 9, 10, 11]
[8, 9, 10, 11, 12]
[8, 9, 10, 11, 12, 13]
[8, 9, 10, 11, 12, 13, 14]
[8, 9, 10, 11, 12, 13, 14, 15]
Zastosowałem list=list[1:] . Czemu pierwszy element się nie usuwa? Zapewnie nie rozumiem dokładnego działania list w pythonie, ale przeszukując internet nikt mi tego dobrze nie wyjaśnił.
Z problemem sobie poradziłem oczywiście, stosując (zamiast list=list[1:])
ghost_stats.remove(ghost_stats[0])
Prosiłbym o wytłumaczenie mojego błędu w postrzeganiu list.
Dziękuję z góry za pomoc