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

用Python中的新值替换替换索引中给定位置处列表中的元素,python,Python,我想用新值替换替换索引中给定位置的列表中的元素。例如,如果给定的列表是replace_元素[1,2,3,4,5,6,7,8],[0,4,3],那么结果应该是[0,2,3,0,0,6,7,8]。我尝试了几种方法,但似乎都不管用。我尝试了以下代码: for i in new_value: list_a[i] = replacement_indices return new_value 您将替换索引和新值放在错误的位置。您应该迭代替换索引,并在每个指定索引处为列表指定新的值: for i in

我想用新值替换替换索引中给定位置的列表中的元素。例如,如果给定的列表是replace_元素[1,2,3,4,5,6,7,8],[0,4,3],那么结果应该是[0,2,3,0,0,6,7,8]。我尝试了几种方法,但似乎都不管用。我尝试了以下代码:

for i in new_value:
   list_a[i] = replacement_indices
return new_value
您将替换索引和新值放在错误的位置。您应该迭代替换索引,并在每个指定索引处为列表指定新的值:

for i in replacement_indices:
   list_a[i] = new_value
也不需要返回任何内容,因为您正在修改列表,这意味着在循环列表a之后,将根据规范进行修改。

您将replacment索引和新值放在错误的位置。您应该迭代替换索引,并在每个指定索引处为列表指定新的值:

for i in replacement_indices:
   list_a[i] = new_value

也不需要返回任何内容,因为您正在修改列表,这意味着在循环之后,列表将根据规范进行修改。

TL;DR:一种不适用的列表理解方法:

只需根据列表中的索引,在三元表达式中选择替换值或原始值:

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]应该是一个集{0,4,3},以便更快地查找;DR:一种不适用的列表理解方法:

只需根据列表中的索引,在三元表达式中选择替换值或原始值:

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]应该是一个集{0,4,3},以便更快地查找。

返回新的_值是罪魁祸首。这段代码在适当的地方工作。这比我的代码要少炫耀,因为它不使用set,但似乎是最符合逻辑的返回值。new_值是罪魁祸首。这段代码在适当的位置工作这比我的要少炫耀,因为它不使用set,但似乎是最符合逻辑的:@jpp更像是一个副本,对吗?你可以关上我不去yell@Jean-Françoisfare,与IMO略有不同,因为该帖子支持每个索引的不同值。虽然这对list并不重要,但对NumPy来说可能很重要。我并不是建议我们在这里提供一个NumPy解决方案:。相关:@jpp更像是一个复制品,对吗?你可以关上我不去yell@Jean-Françoisfare,与IMO略有不同,因为该帖子支持每个索引的不同值。虽然这对list并不重要,但对NumPy来说可能很重要。我并不是建议我们在这里提供一个NumPy解决方案:。最后一行在这里非常重要!也就是说,简单的就地循环不需要设置。最后一行在这里非常重要!也就是说,简单的就地循环不需要设置。