为了账号安全,请及时绑定邮箱和手机立即绑定

在 Python 中用新值替换替换索引中给定位置的列表中的元素

在 Python 中用新值替换替换索引中给定位置的列表中的元素

吃鸡游戏 2021-09-14 16:17:24
我想用新值替换替换索引中给定位置的列表中的元素。例如,如果给定的列表是,replace_elements([1,2,3,4,5,6,7,8],[0,4,3],0)那么结果应该是 [0, 2, 3, 0, 0, 6, 7, 8]。我尝试了几种方法,但它们似乎都不起作用。我尝试了以下代码:for i in new_value:   list_a[i] = replacement_indicesreturn new_value
查看完整描述

2 回答

?
跃然一笑

TA贡献1826条经验 获得超6个赞

一种不能就地工作的列表理解方法:


只需根据列表理解中的索引在三元表达式中决定替换值或原始值:


def replace_elements(inlist, indexes, replvalue):

    return [replvalue if i in indexes else x for i,x in enumerate(inlist)]


print(replace_elements([1,2,3,4,5,6,7,8],[0,4,3],0))

结果:


[0, 2, 3, 0, 0, 6, 7, 8]

对于大索引列表,[0,4,3]应该是set( {0,4,3}) 以加快查找速度。


查看完整回答
反对 回复 2021-09-14
?
噜噜哒

TA贡献1784条经验 获得超7个赞

你把replacment_indicesnew_value放在错误的地方。您应该在每个指定的索引处迭代replacement_indices并分配new_value给列表:

for i in replacement_indices:
   list_a[i] = new_value

由于您正在就地修改列表,因此也无需返回任何内容,这意味着循环之后list_a将根据规范进行修改。


查看完整回答
反对 回复 2021-09-14
  • 2 回答
  • 0 关注
  • 419 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号