Ich habe das Gefühl, dass es eine sehr einfache Möglichkeit geben sollte, auf bestimmte Elemente einer ausgewerteten Funktion zuzugreifen. Ein sehr einfaches Beispiel dafür, was ich zu erreichen versuche, istZugriff auf Objekte und Tupel von einer Funktion aus
def func(x):
a = 2*x
b = x*x
return 1, 10, 100, (a,b)
ich einen Wert für x definieren und die Funktion gibt eine Reihe von Werten und ein Tupel. Ich möchte z. B. das erste Element und das Tupel abrufen. Code wie
hello, cello = func(2)[[0,3]]
Gibt einen Fehler zurück. Jedoch kann ich auf diese Elemente einzeln zugreifen, zum Beispiel
.
Die Funktion, die ich verwende, braucht eine Weile, um zu bewerten, so dass es zweimal ausgeführt wird, ist keine wünschenswerte Option. Außerdem möchte ich, wenn möglich, keinen Haufen von Variablen für jedes einzelne Element des Tupels erstellen (enthält viele).
Im Wesentlichen würde ich eine Lösung wie die nach dem Vorbild der ist:
hello, cello = func(2)[[0,3]]
Wo,
hello = 1
cello = (4,4)
Dank
Entpacken und ignorieren Sie die Elemente, die Sie nicht brauchen: 'Hallo, _, _, cello = func (2)' – AChampion
Ich kann nicht wirklich verstehen, was Sie fragen. Das hat nichts mit Funktionen zu tun; '[[0,3]]' ist einfach eine ungültige Syntax in Python. Wenn Sie die Funktion nicht verwenden und nur mit einem Tupel von '(1, 10, 100, (2, 3)) arbeiten, würde es auch nicht funktionieren. –
Numpy Arrays erlauben die Indizierung wie 'x [[0,3]]', aber nicht Listen oder Tupel. – hpaulj