2017-09-02 76 views
1

我是Stack Overflow和Python的新手。 我想通過索引替換列表中的項目,並且當我運行此代碼時只有第一個實例是替換。Python zip()函數不起作用

word = "DRIPPING" 
letter = "P" 
checkList = [" _ "] * len(word) 
letterLocation=[3,4] 

for (index, replacement) in zip(letterLocation, letter): 
    checkList[index] = replacement 

print(checkList) 

返回[' _ ', ' _ ', ' _ ', 'P', ' _ ', ' _ ', ' _ ', ' _ ']

任何幫助將是非常歡迎的。

+1

'zip'工作得很好,但是你使用'zip',你不應該使用'zip'。 –

回答

1

zip需要兩個或更多的迭代器,並生成元組,每個迭代元包含一個元素,直到其中一個迭代器耗盡。

由於letter只包含一個字符,zip將因此僅發射元組:

>>> list(zip(checkList,letter)) 
[(' _ ', 'P')] 

你不需要zip在這裏,你可以簡單地在checkList迭代,並指派letter所有這些索引:

for index in letterLocation: # look ma, no zip 
    checkList[index] = letter
+0

謝謝威廉。你是明星!請相信我過於複雜的事情。 – tadders