def map_twos():
def pwr(x):
return 2**x
map(pwr, range(0, 100))
print pwr.get[2]
return pwr
什麼是錯的。我不知道如何使用地圖功能來獲得所需的答案如何使用python map函數生成兩個從0開始的100個冪,並且不包括100?
def map_twos():
def pwr(x):
return 2**x
map(pwr, range(0, 100))
print pwr.get[2]
return pwr
什麼是錯的。我不知道如何使用地圖功能來獲得所需的答案如何使用python map函數生成兩個從0開始的100個冪,並且不包括100?
pwr
是一個函數。即使將其映射到列表中,pwr
仍然是一個函數。 map(pwr, range(0, 100))
是你想要的清單。您可以將其存儲在一個變量:
powers = map(pwr, range(0, 100))
print powers[2]
return powers
對於Python3用戶來說,'map'返回一個地圖對象,而不是一個列表,所以這裏的下標不起作用。在你的情況下,使用'powers = list(map(pwr,range(0,100)))' –
@iCodez,這就是爲什麼我直接在「Python3用戶」中直接發表評論的原因。這絕不意味着對OP的建議 –
map
不修改現有列表或功能,而是對結果產生迭代(Python 3中)。這意味着您需要存儲map
的結果並最終將其轉換爲您需要獲取第n個元素(在Python 3中)的list
。
pwrs = map(lambda n: 1 << n, xrange(100))
print pwrs[2]
從使用我想你使用Python 2 print語句的,所以我離開了顯式轉換爲list
和使用xrange
它返回一個迭代器(導致更好的性能)。在Python 3中,xrange
不再存在,而range
總是返回一個迭代器。另請注意,我如何在range
函數上排除了下邊界,因爲它默認爲0.代替預定義函數,我在此使用了lambda
,而這又使用了按位左移,因爲它通常比使用**
(功率)運營商。
你需要具體地圖嗎? –
是的。我需要使用地圖 – user3195981
來解決這個問題,請閱讀map的文檔,它不能在原地執行,也不能在其他地方轉換函數。 – njzk2