CodeGym /Kursy /Python SELF PL /„Zmiana” krotki

„Zmiana” krotki

Python SELF PL
Poziom 8 , Lekcja 4
Dostępny

13.1 Dodawanie elementów

Krotki to niezmienne obiekty. Po stworzeniu krotki nie można jej zmienić. Ale bardzo często, nawet jeśli obiektu nie można zmienić, może być potrzebna jego zmieniona kopia.

Dokładnie to samo zrobiono z klasą str — ma ona kilkadziesiąt metod, które nie zmieniają oryginalnego obiektu str, ale zwracają nowy ciąg, odpowiadający istocie wywołanej metody.

Twórcy Pythona mogli dodać do klasy tuple metody, które by zwracały nowy obiekt przy próbie zmiany krotki. Ale tego nie zrobili. Może aby nas nie zmylić lub z innego powodu.

Dlatego wszystkie zmiany krotki odbywają się według poniższego schematu:


                list = list(krotka)
                zmieniamy list tutaj
                krotka2 = tuple(list)
                        
Dodajemy nowy element — metody append():

Na przykład chcesz dodać element do krotki, oto jak mogłoby to wyglądać:


my_tuple = (1, 2, 3)
my_list = list(my_tuple)
my_list.append(4)  # dodajemy element do listy 
my_new_tuple = tuple(my_list)

Dodanie grupy elementów — metody extend():

Metody extend() pozwala dodać do listy kilka elementów jednocześnie. Jako argument metoda przyjmuje iterowalny obiekt (np. inną listę, krotkę, zbiór):


my_tuple = (1, 2, 3, 4)
my_list = list(my_tuple)
my_list.extend((5, 6))  # dodajemy elementy do listy
my_new_tuple = tuple(my_list)
        

Wstawianie w środek — metody insert()

Metody insert() dodaje element na wskazaną pozycję w liście. Ta metoda przyjmuje dwa argumenty: indeks, pod który ma być umieszczony element, oraz sam element:


my_tuple = (1, 2, 3, 4)
my_list = list(my_tuple)
my_list.insert(0, 0)  # dodajemy 0 na samym początku listy
my_new_tuple = tuple(my_list)
    

13.2 Zmiana elementów

Jeśli chcesz zmienić jakiś element krotki, nadal trzymamy się schematu:


list = list(krotka)
# zmieniamy list tutaj
krotka2 = tuple(list)

Zamienimy pierwszy element krotki z ostatnim wartością, a ostatni z pierwszą. Oto kod, którego do tego potrzeba:


my_tuple = (1, 2, 3, 4)

my_list = list(my_tuple)
my_list[0], my_list[-1] = my_list[-1], my_list[0]  # zamieniamy wartości miejscami 
my_new_tuple = tuple(my_list)
print(my_new_tuple)  # (4, 2, 3, 1)
                

13.3 Usuwanie elementów

Usuwamy elementy z krotki według tego samego schematu.

Powiedzmy, że chcemy usunąć z krotki określoną wartość


 atuple = ("apple", "banana", "cherry")

alist = list(atuple)
alist.remove("apple")
atuple = tuple(alist)

print(atuple)  # ('banana', 'cherry') 
        

Zwróć uwagę, że na końcu przypisujemy nowy obiekt tuple do zmiennej, która wcześniej przechowywała odnośnik do oryginalnego tuple. Tak można, ale oryginalny tuple wcale się nie zmienia. I jeśli gdzieś wyżej w kodzie była na niego referencja, pozostanie ona wskazująca na oryginalny tuple.

Usuńmy teraz ostatni element z krotki.

Oto jak będzie wyglądał kod:


atuple = ("apple", "banana", "cherry")

alist = list(atuple)
alist.pop() # usuwamy ostatni element
atuple = tuple(alist)
            
print(atuple)  # ('apple', 'banana')

        

Myślę, że logika jest dla ciebie jasna. Nie można usuwać elementów z krotki, ale jeśli bardzo się chce, to można 😊

Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION