Ich möchte eine Liste in Python einer festen Größe erstellen, lassen Sie uns so 3 zu beginnen. Ich habe eine Methode, die jedes Mal, wenn die Methode aufgerufen wird, Daten in diese Liste schreibt. Ich möchte sie der Liste hinzufügen, bis die Liste voll ist. Sobald die Liste voll ist, sollte sie die Daten in der Liste in aufsteigender Reihenfolge überschreiben (z beginnend mit Element 0). Ich möchte auch eine Funktion hinzufügen, die die Länge des Arrays erhöhen wird, d. H. Wenn die Methode aufgerufen wird, wird das Array von Größe 3 auf Größe 4 erhöht. Wie gehe ich vor?Python Überschreiben und Größenanpassung Liste
2
A
Antwort
2
sollte diese einfache Lösung tun:
def add(l, item, max_len):
l.insert(0, item)
return l[:max_len]
l = ["banana", "peanut", "bicycle", "window"]
l = add(l, "monkey", 3)
print(newlist)
druckt:
> ['monkey', 'banana', 'peanut']
Die in der Liste (l
), das Element bearbeiten von hinzufügen und die maximale Größe (max_len
) Die Liste sind Argumente.
Das Objekt wird dann zum Index 0 hinzugefügt, während die Liste auf max_len beschränkt ist.
2
Dies sollte den Trick tun. Es gibt Unmengen von vorgefertigten Modulen mit ähnlicher Funktionalität, aber ich dachte, es wäre das Beste, wenn Sie den Prozess visualisieren könnten!
class SizedList(list):
def __init__(self, size):
list().__init__(self)
self.__size = size
self.__wrap_location = 0
self.len = len(self)
def append(self, *args, **kwargs):
self.len = len(self)
if self.len >= self.__size:
if self.__wrap_location == self.__size-1:
self.__wrap_location = 0
self.__wrap_location += 1
self.pop(self.__wrap_location)
return self.insert(self.__wrap_location-1, *args)
return list.append(self, *args, **kwargs)
def increase_size(self, amount=1):
self.__size += 1
0
Hier ist, wie ich am Ende ging. Ich habe eine Variable namens Länge_Liste gesetzt, die ursprünglich auf 3 gesetzt wurde.
def add_to_list():
if len(list) < length_list:
append
else:
del list[0]
self.add_to_list()
def increase_length():
length_list += 1
Verwandte Themen
- 1. Foto Größenanpassung und Komprimierung
- 2. Javascript, Leinwand und Größenanpassung
- 3. Konstruktor und Methode überschreiben in Python
- 4. Größenanpassung von Bildern und Bildformaten
- 5. GridBagLayout Manager und Größenanpassung Kontrollen
- 6. Überschreiben beim Anhängen an Liste von Listen in Python
- 7. Python überschreiben String __hash__
- 8. Druckanweisung python global überschreiben
- 9. Eigenschaft mit Python überschreiben
- 10. Namespace in Python überschreiben
- 11. Python: Überschreiben (Affepatching) Klasse
- 12. Python überschreiben vorherige Zeile
- 13. C++/Boost Python-Klasse überschreiben
- 14. Hintergrundbild Größenanpassung
- 15. Überschreiben 'zu booleschen' Operator in Python?
- 16. Überschreiben einer Datei in Python
- 17. Python Tkinter Eintrag Widget überschreiben
- 18. Verhindern Funktion überschreiben in Python
- 19. Python - BaseHTTPServer - Überschreiben "handle_timeout" Methode
- 20. Elementweise und in Python-Liste
- 21. Python: Liste und String-Matching
- 22. Python-Klasse und Liste Filter
- 23. Python Liste Verständnis und Iterieren
- 24. Python-Liste Filterung und Transformation
- 25. Verstehen Python Liste und Set
- 26. Listenindex Python und Liste Verständnis
- 27. Cocoa Autolayout und Größenanpassung von Subviews
- 28. AS3 und Movieclip dynamische Größenanpassung Griffe
- 29. ObjC - Größenanpassung und Abrufen von Fensterabmessungen
- 30. Größenanpassung Android Android Widgets (DatePicker und TimePicker)
Haben Sie schon einmal gesucht oder probiert? Kennen Sie 'collections.deque()'? – Kasramvd
Ich habe versucht, nur die letzten 3 Elemente in der Liste anzuzeigen, d. H. List [-3:], aber das passt nicht zum vorliegenden Problem. –
Das ist eigentlich eine sehr schöne Übung für dich. Also, versuch es zuerst selbst. Sehen Sie sich einfach an, welche Eigenschaften und Methodenlisten Sie haben und wie Sie eingestellt sind. –