Comment passer une liste en fonction Python ?

WBOY
Libérer: 2023-05-09 19:04:37
avant
1526 Les gens l'ont consulté

Après avoir transmis la liste à la fonction, la fonction peut accéder directement au contenu de la liste.

Supposons qu'il y ait un groupe d'experts et que nous souhaitons les inviter à un atelier.

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

experts = ['小明', '小红']
send_invitation(experts)
Copier après la connexion

Résultats du run :

Bonjour Xiao Ming, vous êtes maintenant invité à participer au XX séminaire…

Bonjour Huang Lili, vous êtes maintenant invité à participer au XX séminaire…

1 Modifier la liste

Transfert des paramètres de liste Une fois donnée à une fonction, la fonction peut la modifier.

Remarque : Toute modification apportée à la liste dans la fonction est permanente.

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))
Copier après la connexion

Résultats de l'exécution :

Avant l'exécution : experts=['Xiao Ming', 'Xiao Hong'], informé=[]

Bonjour Xiaohong, vous êtes maintenant invité à assister au séminaire XX...

Xiao Ming , Bonjour, vous êtes maintenant invité à participer au XX séminaire...

Après exécution : experts=[],informed=['Xiaohong', 'Xiaoming']

Même sans commentaires, ces noms de fonctions descriptifs It peut également exprimer clairement ce que fait la fonction.
Nous pouvons également appeler une autre fonction au sein d'une fonction, ce qui permet de décomposer des tâches complexes en une série d'étapes et rend le programme plus lisible.

2 Liste en lecture seule

Parfois, nous ne voulons pas que la fonction modifie la liste passée,

Dans ce cas, nous pouvons transmettre une copie de la liste à la fonction :

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

Résultat d'exécution :

Avant exécution : experts=[ 'Xiaoming', 'Xiaohong'],informed=[]

Bonjour Xiaohong, vous êtes maintenant invité à assister au séminaire XX...

Bonjour Xiaoming, vous êtes maintenant invité à assister au XX séminaire...

Après l'exécution : experts=['Xiaoming', 'Xiaohong'], informé=['Xiaohong', 'Xiaoming']

Bien que transmettre une copie de la liste à la fonction puisse conserver le contenu de la liste originale,

Mais à moins qu'il y ait de bonnes raisons à cela.

Parce que le fait que la fonction utilise une liste passée peut améliorer les performances en évitant de passer du temps

à créer une copie en mémoire, ce qui est particulièrement important à noter lorsqu'il s'agit de grandes listes de données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal