So geben Sie mehrere Werte gleichzeitig von einer Funktion in Python 3 zurück

Heute teilen wir Ihnen eine Übersetzung eines Artikels mit, den wir auf medium.com gefunden haben. Der Autor Vivek Coder spricht über Möglichkeiten, Werte von einer Funktion in Python zurückzugeben, und erklärt, wie verschiedene Datenstrukturen voneinander unterschieden werden können.





Foto von der Unsplash- Website . Verfasser: Vipul Jha



Python ist insofern praktisch, als Sie mehrere Werte einer Funktion gleichzeitig zurückgeben können. Dazu müssen Sie einen Operator verwenden returnund eine Datenstruktur mit mehreren Werten zurückgeben, z. B. eine Liste der Gesamtzahl der Arbeitsstunden pro Woche.



def hours_to_write(happy_hours):
   week1 = happy_hours + 2
   week2 = happy_hours + 4
   week3 = happy_hours + 6
   return [week1, week2, week3]
 
print(hours_to_write(4))
# [6, 8, 10]


Datenstrukturen in Python werden zum Speichern von Datensammlungen verwendet, die von einer Anweisung zurückgegeben werden können return. In diesem Artikel werden Möglichkeiten untersucht, wie mehrere Werte mithilfe ähnlicher Strukturen (Wörterbücher, Listen und Tupel) sowie mithilfe von Klassen und Datenklassen (Python 3.7+) zurückgegeben werden können.



Methode 1: Rückgabewerte mithilfe von Wörterbüchern



Wörterbücher enthalten Kombinationen von Elementen, bei denen es sich um Schlüssel-Wert-Paare ( key:value) handelt, die in geschweiften Klammern ( {}) eingeschlossen sind.



Wörterbücher sind meiner Meinung nach die beste Option für den Job, wenn Sie den Schlüssel für den Zugriff auf die Werte kennen. Das folgende Wörterbuch enthält den Namen der Person und den entsprechenden Wert das Alter.



people={
  'Robin': 24,
  'Odin': 26,
  'David': 25
}


Fahren wir nun mit der Funktion fort, die ein Wörterbuch mit Schlüssel-Wert-Paaren zurückgibt.



# A Python program to return multiple values using dictionary
# This function returns a dictionary 
def people_age(): 
    d = dict(); 
    d['Jack'] = 30
    d['Kim'] = 28
    d['Bob'] = 27
    return d
d = people_age() 
print(d)
# {'Bob': 27, 'Jack': 30, 'Kim': 28}


Methode 2: Rückgabewerte mithilfe von Listen



Listen ähneln Arrays, die mit eckigen Klammern erstellt wurden, können jedoch verschiedene Arten von Elementen enthalten. Listen unterscheiden sich auch von Tupeln, da es sich um veränderbare Datentypen handelt. Das heißt, jede Liste kann sich ändern .



Listen sind eine der vielseitigsten Datenstrukturen in Python, da sie nicht einheitlich sein müssen (sie können Zeichenfolgen, Zahlen und Elemente enthalten). Manchmal werden Listen sogar in Verbindung mit Stapeln oder Warteschlangen verwendet.



# A Python program to return multiple values using list
 
def test(): 
    str1 = "Happy"
    str2 = "Coding"
    return [str1, str2];
 
list = test() 
print(list)
# ['Happy', 'Coding']


Hier ist ein Beispiel, das eine Liste mit natürlichen Zahlen zurückgibt.



def natural_numbers(numbers = []):
   
   for i in range(1, 16):
       numbers.append(i)
   return numbers
 
print(natural_numbers())
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]


Methode 3: Werte mit Tupeln zurückgeben



Tupel sind unveränderliche Objekte in Python, die üblicherweise zum Speichern von Sammlungen heterogener Daten verwendet werden.



Tupel ähneln Listen, können jedoch nach ihrer Deklaration nicht mehr geändert werden. Außerdem funktionieren Tupel in der Regel schneller als Listen. Sie können ein Tupel erstellen, indem Sie die Elemente durch Kommas trennen: x, y, zoder (x, y, z).



In diesem Beispiel wird ein Tupel verwendet, um Daten über einen Mitarbeiter zu speichern (Name, Berufserfahrung in Jahren und Firmenname).



Bob = ("Bob", 7, "Google")


Und hier ist ein Beispiel für das Schreiben einer Funktion zum Zurückgeben eines Tupels.



# A Python program to return multiple values using tuple
# This function returns a tuple 
def fun(): 
    str1 = "Happy"
    str2 = "Coding"
    return str1, str2; # we could also write (str1, str2)
str1, str2= fun() 
print(str1) 
print(str2)
# Happy
  Coding


Beachten Sie, dass wir die Klammern in der Anweisung weggelassen haben return, da es ausreicht, jedes Element einfach durch ein Komma zu trennen, um ein Tupel zurückzugeben (wie oben gezeigt).



Vergessen Sie nicht, dass Sie ein Tupel mit einem Komma anstelle von Klammern erstellen können. Klammern sind nur erforderlich, wenn leere Tupel verwendet werden oder wenn Sie syntaktische Ungenauigkeiten vermeiden müssen.



Für ein besseres Verständnis von Tupeln finden Sie in der offiziellen Python 3 - Dokumentation (die Dokumentation ist in Englisch - Ed . ).



Unten finden Sie ein Beispiel für eine Funktion, die Klammern verwendet, um ein Tupel zurückzugeben.



def student(name, class):
   return (name, class)
print(student("Brayan", 10))
# ('Brayan', 10)


Auch hier sind Tupel leicht mit Listen zu verwechseln (schließlich sind beide ein Container mit Elementen). Es gibt jedoch einen grundlegenden Unterschied zu beachten: Tupel können nicht geändert werden, Listen jedoch.



Methode 4: Werte mit Objekten zurückgeben



Hier ist alles gleich wie in C / C ++ oder Java. Sie können einfach eine Klasse bilden (in C als Struktur bezeichnet), um mehrere Merkmale zu speichern und ein Objekt der Klasse zurückzugeben.



# A Python program to return multiple values using class 
class Intro: 
 def __init__(self): 
  self.str1 = "hello"
  self.str2 = "world"
# This function returns an object of Intro
def message(): 
 return Intro() 
 
x = message() 
print(x.str1) 
print(x.str2)
# hello
  world


Methode 5: Rückgabe von Werten mithilfe von Datenklassen (Python 3.7+)



Datenklassen in Python 3.7+ helfen dabei, eine Klasse mit automatisch hinzugefügten eindeutigen Methoden, einem Modul typingund anderen nützlichen Tools zurückzugeben.



from dataclasses import dataclass
@dataclass
class Item_list:
    name: str
    perunit_cost: float
    quantity_available: int = 0
    def total_cost(self) -> float:
        return self.perunit_cost * self.quantity_available
    
book = Item_list("better programming.", 50, 2)
x = book.total_cost()
print(x)
print(book)
# 100
  Item_list(name='better programming.', perunit_cost=50, 
  quantity_available=2)


Zum besseren Verständnis von Datenklassen finden Sie in der offiziellen Python 3 - Dokumentation (Dokumentation ist in Englisch - Ed . ).



Ausgabe



Der Zweck dieses Artikels besteht darin, Sie mit Möglichkeiten vertraut zu machen, mehrere Werte von einer Funktion in Python zurückzugeben. Und wie Sie sehen, gibt es wirklich viele dieser Möglichkeiten.



Lernen Sie Material und entwickeln Sie Ihre Programmierkenntnisse ständig weiter. Vielen Dank für Ihre Aufmerksamkeit!



All Articles