• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Python - usuwanie elementu z listy w konkretnym obiekcie

Object Storage Arubacloud
+1 głos
383 wizyt
pytanie zadane 5 października 2021 w Python przez Bartłomiej Sikora Użytkownik (730 p.)

Witam! Zaczynam przygodę z Pythonem i napotkałem na taki problem:

class Class():
    data = ['a', 'b']


array = []
array.append(Class())
array.append(Class())
array.append(Class())

print(str(array[0].data))

array[0].data.remove('a')

print(str(array[0].data))
print(str(array[1].data))
print(str(array[2].data))

Chcę usunąć wartość 'a' z listy tylko obiektu o indeksie 0 w tablicy 'array', ale linijka z poleceniem 'remove' usuwa tę wartość także w pozostałych. Efekt działania kodu:

['a', 'b']
['b']
['b']
['b']

Jak usunąć tę wartość z jednego obiektu w tablicy? Z góry dziękuje :D

2 odpowiedzi

+1 głos
odpowiedź 5 października 2021 przez adrian17 Ekspert (344,860 p.)
edycja 5 października 2021 przez adrian17
class Class():
    data = ['a', 'b']

Bo tak jak to napisałeś, to `data` jest cechą klasy, nie instancji klasy.

Jak chcesz żeby każdy obiekt miał własny `data`, to powinieneś ustawić pola w konstruktorze:

class Class:
    def __init__(self):
        self.data = ['a', 'b']

 

0 głosów
odpowiedź 5 października 2021 przez manjaro Nałogowiec (37,390 p.)

Możesz użyć

array[0].data = array[0].data[1:]

zamiast

array[0].data.remove('a')

I będzie OK. Ale lepszym rozwiązaniem jest zrobić tak jak proponuje Adrian.

Podobne pytania

0 głosów
2 odpowiedzi 546 wizyt
pytanie zadane 15 stycznia 2019 w Python przez RadziSzop Nowicjusz (240 p.)
0 głosów
4 odpowiedzi 1,699 wizyt
pytanie zadane 10 listopada 2018 w Python przez adam11 Użytkownik (570 p.)
0 głosów
1 odpowiedź 1,132 wizyt
pytanie zadane 22 lutego 2018 w Python przez NieMaJuzNazw Użytkownik (890 p.)

92,536 zapytań

141,377 odpowiedzi

319,452 komentarzy

61,920 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...