2015-12-16 22 views
0

我有一個目錄名的列表,並希望在它之前添加一個固定路徑。 我知道,它可以通過兩種方式完成,1)使用for循環和2)使用map()函數。我如何在map()中使用os.path.join

我能夠使用循環做的事:在列表中的每個目錄名和目錄名:

dirNames = ['dir1', 'dir2'] 
dirsFullPath = [os.path.join('C:\\', dir) for dir in dirNames] 

但地圖如何傳遞兩個參數,即「\ C」。

dirsFullPath = map(os.path.join, dirNames) # so where to put 'C:\\' in this line. 
+0

沒有這個問題是完全不同的。雖然我們可以使用'functools.partial'完成目標,但這並不複雜。 – Abhinav

+0

@ a_bhi_9是什麼讓你認爲*這個問題是完全不同的*? – styvane

+0

@ user3100115,user3100115:其中一個答案來自「如何執行多個參數來映射函數,其中一個在python中保持不變」?解決了我的問題,但在這裏回答「如何在Python中綁定常量參數?」非常複雜。你能刪除第二個鏈接嗎? – Luminos

回答

2

你需要傳遞函數和迭代來map,應用這樣簡單,你可以依靠lambda功能和迭代是您的清單。

import os 
dirNames = ['dir1', 'dir2'] 
path_maker = lambda dir_name: os.path.join("C:\\", dir_name) 
map(path_maker, dirNames) 

參考的map作進一步詳細的文檔,https://docs.python.org/2/library/functions.html#map

+0

@ a_abhi_9:非常感謝! – Luminos