兩個(gè)python的語(yǔ)法問(wèn)題
問(wèn)題描述
今天在看一個(gè)分治法的例子,代碼如下:
def get_max(max_list): return max(max_list)def solve(init_list): n = len(init_list) if n <= 2:return get_max(init_list) temp_list = (init_list[i:i+2] for i in range(0, n, 2)) # print ’temp_list: ’ + str(temp_list) print temp_list max_list = list(map(get_max, temp_list)) return solve(max_list)
有兩個(gè)問(wèn)題:
1.temp_list生成的是tuple類型嗎?我打印出來(lái)的結(jié)果是<generator object <genexpr> at 0x00000000023570D8>, 為什么是這樣?2. list(map(get_max, temp_list))是把map類型轉(zhuǎn)成了list, 但是這里為什么要用map呢?if __name__ == '__main__': test_list = [12, 2, 23, 45, 67, 3, 2, 4, 45, 63, 24, 23]print solve(test_list)
問(wèn)題解答
回答1:1、init_list傳入的時(shí)候就是generator2、list(map(get_max, temp_list)相當(dāng)于[get_max(t) for t in temp_list]回答2:
可以參考這個(gè)wiki page.
不是把map類型轉(zhuǎn)成了list,map不是類型,而是一個(gè)內(nèi)置函數(shù),他的作用是對(duì)temp_list里面的每個(gè)元素apply到get_max這個(gè)函數(shù)里面,最后再把結(jié)果轉(zhuǎn)變成list。可以看下文檔。建議題主看下python基礎(chǔ)。
相關(guān)文章:
1. shell - mysql更新錯(cuò)誤2. javascript - vue中使用prop傳遞數(shù)據(jù)問(wèn)題3. php對(duì)mysql提取數(shù)據(jù)那種速度更快4. javascript - avalon.js ms-on 事件綁定無(wú)效 ?5. javascript - immutable配合react提升性能?6. mysql - 在log日志中已知用戶的某一步操作,如何獲取其上一步操作?7. python小白 自學(xué)看書(shū)遇到看不懂的地方8. 如何設(shè)置一個(gè)無(wú)限循環(huán)并打破它。(Java線程)9. ubuntu如何啟動(dòng)sublime10. 網(wǎng)頁(yè)爬蟲(chóng) - 如何使用使用java抓取信息并制作一個(gè)排名系統(tǒng)?

網(wǎng)公網(wǎng)安備