簡體   English   中英

將列表作為參數傳遞給函數python

[英]Passing a list as arguments to function python

場景:我正在嘗試將字符串列表作為變量輸入傳遞給函數。

問題:由於列表中的變量僅用於參數之一,因此我得到的錯誤must be str, not list

該函數將三個輸入作為參數:

transformfile(path, name, id)

我有一個要傳遞的名稱列表:

list_names =['Name1', 'Name2', 'Name3']

我嘗試直接傳遞它,但是遇到了上述錯誤...

transformfile(path, list_names, id)

目標:在這種情況下,我的目標是使該函數針對list_names中的每個名稱多次運行。

問題:是否可以執行這種過程,或者我是否必須直接直接多次調用該函數?

該函數不能接收多個名稱,它只能處理單個名稱,並且沒有任何方法可以改變它。

幸運的是,這正是for循環的用途:

for name in list_names:
    transformfile(path, name, id)

這是完美的,正常的等等。即使函數可以接收列表,它也可能在內部有一個for循環來執行此操作。

如果transformFile返回以下內容,則也可以使用列表推導:

result = [transformfile(path, n, id) for n in list_names]

甚至帶有或不帶有functools.partial map內置函數:

result = map(lambda n: transformFile(path, n, id), list_names)

from functools import partial
result = map(partial(path=path, id=id), list_names)

注意: map返回一個可迭代的,因此,如果要每個調用的結果,則需要創建一個列表: list(result)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM