Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python列表没有';t更新_Python_List_Loops_Integer - Fatal编程技术网

Python列表没有';t更新

Python列表没有';t更新,python,list,loops,integer,Python,List,Loops,Integer,我试图解决Python上一个看似简单的问题。我正在尝试将列表的最后3个元素更新为其他整数。代码如下: list = [0,1,2,3,4] for i in xrange(len(list[2:])): list[2:][i] = 44444 print list 但当我打印列表时,它仍然保持不变。我观察了调试器中的更改,发现列表在循环中没有更新。我试着在Google和Stack Overflow上搜索其他地方,但没有一个能提供这个简单问题的答案 让我知道你们对这件事的看法。谢谢

我试图解决Python上一个看似简单的问题。我正在尝试将列表的最后3个元素更新为其他整数。代码如下:

list = [0,1,2,3,4]
for i in xrange(len(list[2:])):
    list[2:][i] = 44444

print list 
但当我打印列表时,它仍然保持不变。我观察了调试器中的更改,发现列表在循环中没有更新。我试着在Google和Stack Overflow上搜索其他地方,但没有一个能提供这个简单问题的答案


让我知道你们对这件事的看法。谢谢

列表的一部分是一个新列表;它没有引用原文或类似的东西。改为分配给
列表[2+i]
。(您可以避免以相同的方式进行额外切片以获得长度。)


列表的一部分是一个新列表;它没有引用原文或类似的东西。改为分配给
列表[2+i]
。(您可以避免以相同的方式进行额外切片以获得长度。)


除非指定给切片,否则切片将创建新列表:

>>> values = [0, 1, 2, 3, 4]
>>> values[-3:] = [4444] * 3
>>> values
[0, 1, 4444, 4444, 4444]

除非指定给切片,否则切片将创建新列表:

>>> values = [0, 1, 2, 3, 4]
>>> values[-3:] = [4444] * 3
>>> values
[0, 1, 4444, 4444, 4444]

通过对xrange中的i使用
(len(list[2:]):
可以将列表的长度从5减少到3。循环将仅对前3个列表项进行迭代。 相反,您可以这样做:

a=[0,1,2,3,4,5]
for i in range(3,len(a)):
   a[i]=444
print(a)

通过对xrange中的i使用
(len(list[2:]):
可以将列表的长度从5减少到3。循环将仅对前3个列表项进行迭代。 相反,您可以这样做:

a=[0,1,2,3,4,5]
for i in range(3,len(a)):
   a[i]=444
print(a)