請問python map函式下引數func怎樣才能傳入2個引數進去?

時間 2021-05-31 21:06:30

1樓:

pool

.map

(lambda

args

:get_player_info(*

args

),((i[

'Name'],i

['link'

])foriin

allplayers

.find().

limit(3)))

2樓:謙謙君子

把map改成starmap即可。

參考:Python:多程序執行含有任意個引數的函式_Python_qq_15969343的部落格-CSDN部落格

3樓:機智的蘇先鋒

最直接的辦法:

在原函式外面再包乙個接受單個引數的函式,eg:

def get_player_info_mix(mix_args):

return get_player_info(mix_args[0], mix_args[1])

然後map這個新函式←_←

比較pythonic(但是有問題)的辦法:當然是裝飾器啦,eg:

def one_arg(func):

@one_arg

def get_player_info(name,link):

pass

錯誤。不過多執行緒的時候可以。

就很pythonic←_←

4樓:

樓主的意思應該是不想對函式的介面改動,不然把函式的輸入引數改成乙個列表,然後在函式內部分解開是可以的。

但是map的原型是這樣的:

map(

self

,func

,iterable

,chunksize

=None

)看iterable就知道這個介面做不到函式傳多個引數。

5樓:魔術師LYX

from multiprocessing.dummy import Pool as ThreadPool

def printlist(list):

x = list[0]

y = list[1]

print(x, y)

pool = ThreadPool(4)

listx = [0, 10, 20, 30]listy = ['a', 'b', 'c', 'd']listxy = zip(listx, listy)results = pool.map(printlist, listxy)

pool.close()

pool.join()

6樓:李悅凡

你也可以使用閉包函式,比如:

def func_1(x):

def func_2(y):

return x + y

return func_2

然後在用的時候先把x這個引數通過

func = func_1(x)定義一下,之後再把func這個函式傳到map裡面:

map(func, y)

這樣應該就可以了

c 中乙個只有有參建構函式的類怎麼做為函式的形參?

GarfieldKwong 你編譯錯誤的原因其他答主已經說清楚了,就是DepthFirstSearch裡的成員Graph g導致的。DepthFirstSearch的建構函式沒有顯示初始化Graph g,編譯器預設呼叫Gragh 良好的是類的建構函式裡每個成員變數都要顯示初始化。其實編譯器裡Dept...

如何解決Python定義函式時傳參遇到的問題?

只增笑耳Jason 直觀點的做法可以這麼來。deftest html,a kwargs soup BeautifulSoup html,a kwargs 呼叫 d test html,a d 我算是明白題主想要什麼了,現在深夜,手機打字不方便,我明天白天幫你改改你的test resolvewang ...

linux下的read函式 write函式是屬於直接I O,為什麼函式原型的第二項就是要將資料放到輸入緩衝區內呢?

題主是各種概念混淆了。第一,write read原型 include ssize t write int filedes void buf size t nbytes 返回 若成功則返回寫入的位元組數,若出錯則返回 1 filedes 檔案描述符 buf 待寫入資料快取區 nbytes 要寫入的位元...