l = ['1', '2', '1', '1']for i in l:
if i == '1':
i = '3'print(l)为什么l的结果还是['1', '2', '1', '1'],如何修改成['3', '2', '3', '3']?
3 回答
![?](http://img1.sycdn.imooc.com/5458643d0001a93c02200220-100-100.jpg)
UYOU
TA贡献1878条经验 获得超4个赞
l = ['1', '2', '1', '1']
new_l = []
for i in l:
if i == '1': new_l.append(3)else: new_l.append(i)
l = new_l
print(l)
![?](http://img1.sycdn.imooc.com/54584f3100019e9702200220-100-100.jpg)
函数式编程
TA贡献1807条经验 获得超9个赞
# 方法一
for i in range(len(l)):
if l[i] == '1':
l[i] = '3'
# 方法二
for i, item in enumerate(l):
if item == '1':
l[i] = '3'
另外,如果要删除元素,建议不要直接在原数据上做修改,比较谨慎的做法是复制一份出来list.remove(value)
删除。
![?](http://img1.sycdn.imooc.com/545868cd00013bbb02200220-100-100.jpg)
手掌心
TA贡献1942条经验 获得超3个赞
# 修改原列表
for idx, i in enumerate(l):
if i == '1':
l[idx] = '3'
# 或产生新的列表
l = ['3' if i=='1' else i for i in l]
添加回答
举报
0/150
提交
取消