我試圖將math.pow具有 2 次冪的函式映射到一個串列,但問題是我應該傳遞一個可迭代的而不是單個值。因此,我通過制作與我的串列長度相同的 2 串列來修復它:
import math
lis = [1,2,3,4]
squred_lis = list(map(math.pow, lis, [2,2,2,2]))
print (squred_lis)
那么,有沒有一種方法可以只傳遞一個值并將其作為第二個引數傳遞每次迭代?
uj5u.com熱心網友回復:
我想你要找的是itertools.repeat(). 它將無限重復該值,map()并將根據需要迭代盡可能多的值以匹配 的長度lis。
import math
import itertools
lis = [1,2,3,4]
squared_lis = list(map(math.pow, lis, itertools.repeat(2)))
print(squared_lis)
它產生:
[1.0, 4.0, 9.0, 16.0]
uj5u.com熱心網友回復:
我想這就是你想要的
squred_lis = list(map(math.pow, lis, [2 for _ in range(len(a))]))
但是……這個怎么樣?
squared_list = list(map(lambda x: x ** 2, a))
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/334662.html
