ホームページ  >  記事  >  バックエンド開発  >  Python関数でリストを渡すにはどうすればよいですか?

Python関数でリストを渡すにはどうすればよいですか?

WBOY
WBOY転載
2023-05-09 19:04:371514ブラウズ

リストを関数に渡した後、関数はリストの内容に直接アクセスできます。

専門家のグループがあり、彼らをセミナーに招待したいとします。

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

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

実行結果:

こんにちは、シャオミンさん、XX セミナーへの参加に招待されました…

こんにちは、ファン・リリさん、今から参加に招待されていますXX セミナーで予定...

1 リストを変更する

リスト パラメータが関数に渡された後、関数はリスト パラメータを変更できます。

注: 関数内のリストに加えられた変更は永続的です。

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

実行結果:

実行前:experts=['Xiao Ming', 'Xiao Hong']、informed=[]

こんにちは、Xiaohong さんXX セミナーへの参加に招待されました...

Xiaoming さん、XX セミナーへの参加に招待されました...

実行後: Experts=[],informed= [' Xiaohong', 'Xiaoming']

コメントがなくても、説明的な関数名を使用すると、関数によって実行される作業を明確に表現できます。
関数内で別の関数を呼び出すこともできます。これにより、複雑なタスクを一連のステップに分割し、プログラムを読みやすくすることができます。

2 読み取り専用リスト

関数が渡されたリストを変更したくない場合があります。

この場合、リストのコピーを渡すことができます。関数へ:

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

実行結果:

実行前: Experts=['Xiao Ming', 'Xiao Hon']、informed=[]

シャオホン、こんにちは。現在、XX セミナーに招待されています...

こんにちは、シャオミン、現在、XX セミナーに招待されています...

実行後: Experts=[' Xiao Ming', 'Xiao Hon'] ,informed=['小红', '小明']

リストのコピーを関数に渡すと、元のリストの内容を保持できますが、

そうする正当な理由がない限り、そうしてください。

関数に渡されたリストを使用させると、メモリ内にコピーを作成するのに時間を費やすことがなくなり、パフォーマンスが向上するためです。これは、大規模なデータのリストを扱う場合に特に重要です。

以上がPython関数でリストを渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。