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

如何返回在Python中修改列表[i]的列表副本?,python,list,Python,List,例如,我想获取列表的副本,其中list[0]=100 l = [9, 2, 5] #I want to get [100, 2, 5] 我写了这段代码,但它不起作用(发生了一个错误) 任何一种蟒蛇式的方式都可以 谢谢。简单一点怎么样 copy_list = l[:] copy_list[0] = 100 print copy_list # [100, 2, 5] output = [100] + l[1:] 这可以推广到任何索引i,如: output = l[:i] + [100]

例如,我想获取列表的副本,其中
list[0]=100

l = [9, 2, 5]
#I want to get [100, 2, 5]
我写了这段代码,但它不起作用(发生了一个错误)

任何一种蟒蛇式的方式都可以

谢谢。

简单一点怎么样

copy_list = l[:]
copy_list[0] = 100
print copy_list    #  [100, 2, 5]
output = [100] + l[1:]
这可以推广到任何索引
i
,如:

output = l[:i] + [100] + l[i+1:]
简单一点怎么样

output = [100] + l[1:]
这可以推广到任何索引
i
,如:

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

要完全回答您的问题,您需要的是一个类似以下的函数:

def modifylist(original, index, value):
    return original[:i] + [value] + original[i+1:]
示例(来自问题):

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


要完全回答您的问题,您需要的是一个类似以下的函数:

def modifylist(original, index, value):
    return original[:i] + [value] + original[i+1:]
示例(来自问题):

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


这对于指定的示例不起作用,因为当列表被切片时,它返回整数,因为它只有3个项目长——Python不允许您将列表和整数相加。即使显式地将切片声明为lists get
'int'对象也不可编辑
@AlexThornton:我不知道你的意思。该代码确实适用于
l=[9,2,5]
(我已经测试过了)。我的错误是,我在
l[I+1::
中的
1
后出现了一个noob错误这对于指定的示例不起作用,因为当列表被切片时,它返回整数,因为它只有3个项目长——Python不允许您将列表和整数相加。即使显式地将切片声明为lists get
'int'对象也不可编辑
@AlexThornton:我不知道你的意思。该代码确实适用于
l=[9,2,5]
(我已经测试过了)。我的错误是,我在
l[I+1::
中的
1
后出现了一个noob错误