如何返回在Python中修改list [i]的列表副本?

时间:2014-02-23 16:49:38

标签: python list

例如,我想获得list[0] = 100

列表的副本
l = [9, 2, 5]
#I want to get [100, 2, 5]

我编写了这段代码,但它不起作用(发生错误)。

l = [9, 2, 5]
output = (lambda x: x[0]=100)(mylist[:])
#I want to get [100, 2, 5]

请任何Pythonic方式。

感谢。

4 个答案:

答案 0 :(得分:6)

如何简单地

output = [100] + l[1:]

这可以对任何索引i进行推广,如下所示:

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

答案 1 :(得分:5)

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

答案 2 :(得分: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]

答案 3 :(得分:1)

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