Maison  >  Article  >  développement back-end  >  Comment passer une liste en fonction Python ?

Comment passer une liste en fonction Python ?

WBOY
WBOYavant
2023-05-09 19:04:371506parcourir

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)

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))

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))

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer