Python 如何替换列表中的元素?

Python 如何替换列表中的元素?,python,loops,Python,Loops,我试图编写一个循环,用半个大的元素替换列表中的所有元素。如果列表为[1,2,3,4],则新列表应为[0.5,1,1.5,2]。 不创建新列表 我尝试了以下方法 for i in Glist: i = Glist[i]/2 Glist.append(i) 出现错误:列表索引超出范围 如何停止循环 我也试过: for i in mylist: i = i/2 mylist.append(i) 不起作用如果要替换列表的元素,则列表的长度不应更改,而append会更改

我试图编写一个循环,用半个大的元素替换列表中的所有元素。如果列表为[1,2,3,4],则新列表应为[0.5,1,1.5,2]。 不创建新列表

我尝试了以下方法

for i in Glist:
    i = Glist[i]/2
    Glist.append(i)
出现错误:列表索引超出范围 如何停止循环

我也试过:

for i in mylist:
    i = i/2
    mylist.append(i)
不起作用

如果要替换列表的元素,则列表的长度不应更改,而append会更改。相反:

for i,v in enumerate(Glist):
    Glist[i] = v/2.0

请注意,在添加列表的同时对列表进行迭代是实现无止境循环的完美方法。除了iiuc,您还需要修改实际的元素,这里您只是将其添加到列表的末尾

您可以使用常规for循环,只需使用以下内容就地修改:


这回答了你的问题吗?
for i in range(len(Glist)):
    Glist[i] /= 2.
print(Glist)
[0.5, 1.0, 1.5, 2.0]