Heim  >  Artikel  >  Backend-Entwicklung  >  Wie übergebe ich eine Liste in einer Python-Funktion?

Wie übergebe ich eine Liste in einer Python-Funktion?

WBOY
WBOYnach vorne
2023-05-09 19:04:371526Durchsuche

Nachdem die Liste an die Funktion übergeben wurde, kann die Funktion direkt auf den Inhalt der Liste zugreifen.

Angenommen, es gibt eine Expertengruppe und wir möchten sie zu einem Workshop einladen.

def send_invitation(experts):
    '''发送邀请函'''
    for expert in experts:
        print(expert + ',您好,现邀请您参加 XX 研讨会...')

experts = ['小明', '小红']
send_invitation(experts)

Laufergebnisse:

Hallo Xiao Ming, du bist jetzt eingeladen, am XX-Seminar teilzunehmen…

Hallo Huang Lili, du bist jetzt eingeladen, am XX-Seminar teilzunehmen…

1 Ändere die Liste

Übergabe von Listenparametern Sobald sie einer Funktion übergeben wurden, kann die Funktion sie ändern.

Hinweis: Alle an der Liste in der Funktion vorgenommenen Änderungen sind dauerhaft.

def send_invitation(experts, informed):
    '''发送邀请函,并移动列表数据到【已通知】列表'''
    while experts:
        expert = experts.pop()
        print(expert + ',您好,现邀请您参加 XX 研讨会...')
        informed.append(expert)

experts = ['小明', '小红']  # 专家列表
informed = []  # 已通知人员列表
print('执行前:experts=' + str(experts) + ',informed=' + str(informed))
send_invitation(experts, informed)
print('执行后:experts=' + str(experts) + ',informed=' + str(informed))

Laufergebnisse:

Vor der Ausführung: Experten=['Xiao Ming', 'Xiao Hong'], informiert=[]

Hallo Xiaohong, Sie sind jetzt zum XX-Seminar eingeladen...

Xiao Ming, Hallo, Sie sind jetzt eingeladen, am XX-Seminar teilzunehmen...

Nach der Ausführung: experten=[], informiert=['Xiaohong', 'Xiaoming']

Auch ohne Kommentare sind diese beschreibenden Funktionsnamen It kann auch klar ausdrücken, was die Funktion tut.
Wir können auch eine andere Funktion innerhalb einer Funktion aufrufen, was dabei hilft, komplexe Aufgaben in eine Reihe von Schritten zu unterteilen und das Programm lesbarer zu machen.

2 Schreibgeschützte Liste

Manchmal möchten wir nicht, dass die Funktion die übergebene Liste ändert.

In diesem Fall können wir eine Kopie der Liste an die Funktion übergeben:

experts = ['小明', '小红']  # 专家列表
informed = []  # 已通知人员列表
print('执行前:experts=' + str(experts) + ',informed=' + str(informed))
send_invitation(experts[:], informed)
print('执行后:experts=' + str(experts) + ',informed=' + str(informed))

Laufendes Ergebnis:

Vor der Ausführung: Experten=[ 'Xiaoming', 'Xiaohong'],informiert=[]

Hallo Xiaohong, Sie sind jetzt zum XX-Seminar eingeladen...

Hallo Xiaoming, Sie sind jetzt zum XX eingeladen Seminar...

Nach der Ausführung: Experten=['Xiaoming', 'Xiaohong'], informiert=['Xiaohong', 'Xiaoming']

Obwohl die Übergabe einer Kopie der Liste an die Funktion den Inhalt von behalten kann die ursprüngliche Liste,

Aber es gibt gute Gründe dafür.

Denn wenn die Funktion eine übergebene Liste verwendet, kann die Leistung verbessert werden, da Zeitaufwand für die Erstellung einer Kopie im Speicher vermieden wird, was besonders beim Umgang mit großen Datenlisten zu beachten ist.

Das obige ist der detaillierte Inhalt vonWie übergebe ich eine Liste in einer Python-Funktion?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen