2014-02-23 52 views

回答

5
copy_list = l[:] 
copy_list[0] = 100 
print copy_list # [100, 2, 5] 
6

如何簡單地

output = [100] + l[1:] 

這可以概括爲任何指數i像這樣:

output = l[:i] + [100] + l[i+1:] 
+0

這並不適用於指定例如工作,因爲當列表切片它返回一個整數作爲它只有3個項目 - 而Python不會讓你將一個列表和一個整數加在一起。即使明確地聲明切片爲列表也會得到''int'對象不可迭代'。 –

+0

@AlexThornton:我不確定你的意思。該代碼當然適用於'l = [9,2,5]'(我已經測試過了)。 – NPE

+0

我的錯誤是,我在'l [i + 1:]'中的'1'後面做了noob錯誤。 :) –

1

要完全回答你的問題,你需要的是一個功能有點像這個:

def modifylist(original, index, value): 
    return original[:i] + [value] + original[i+1:] 

示例(從提問):

l = [9, 2, 5] 
output = modifylist(l, 0, 100) 
print(output) 

輸出...

>>> [100, 2, 5] 
1
L = [9, 2, 5] 
output = [100 if i == 0 else x for i, x in enumerate(L)]