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 要寫入的位元...