Dieser Artikel stellt hauptsächlich vor, wie man die Zusammensetzung von Unterbereichselementen aus einer zweidimensionalen Liste in Python erhält. Ich glaube, dass er einen gewissen Referenzwert für das Verständnis und Lernen aller hat Wenn Sie Hilfe benötigen, kommen Sie bitte vorbei und schauen Sie sich unten um.
Jeder, der NumPY
verwendet hat, sollte wissen, dass die Flächenaufteilungsfunktion bequem in einem zweidimensionalen Array verwendet werden kann, wie unten gezeigt:
Und diese Funktion wird in List
der Python-Standardbibliothek nicht unterstützt. Slicing-Operationen können nur in einer Dimension in List
nicht einführen. Tatsächlich kann ich es derzeit auch in Python implementieren. Implementieren Sie zu diesem Zeitpunkt einfach die spezielle Methode NumPY
in einer Klasse: __getitem__
class Array: """实现__getitem__,支持序列获取元素、Slice等特性""" def __init__(self, lst): self.__coll = lst def __repr__(self): """显示列表""" return '{!r}'.format(self.__coll) def __getitem__(self, key): """获取元素""" slice1, slice2 = key row1 = slice1.start row2 = slice1.stop col1 = slice2.start col2 = slice2.stop return [self.__coll[r][col1:col2] for r in range(row1, row2)]
Probieren Sie es aus:
a = Array([['a', 'b', 'c', 'd'], ['e', 'f', 'g', 'h'], ['i', 'j', 'k', 'l'], ['m', 'n', 'o', 'p'], ['q', 'r', 's', 't'], ['u', 'v', 'w', 'x']]) print(a[1:5, 1:3])
in offiziellen Dokumenten: __getitem__
zu ermitteln. self[key]
, 如__setitem__
und __delitem__
auf andere Codes, die entsprechend der tatsächlichen Situation hinzugefügt werden müssen. __len__
a = [['a', 'b', 'c', 'd'], ['e', 'f', 'g', 'h'], ['i', 'j', 'k', 'l'], ['m', 'n', 'o', 'p'], ['q', 'r', 's', 't'], ['u', 'v', 'w', 'x']] sl = lambda row1, row2, col1, col2, lst: \ [lst[r][col1:col2] for r in range(row1, row2)] sl(1, 5, 1, 3, a)