首页 > 解决方案 > 满足特定条件时替换列表中的元素

问题描述

当值大于某个值时,我想通过添加另一个列表来更改列表中的特定元素。

假设我们有 2 个列表:

num_list=[1,5,2,19,28,21]
num_list_2=[2,8,23,81,52,31]
value=3

对于第一个列表,我希望所有大于 3 的值都被更改。所有大于 3 的值我希望它添加到第二个列表 (num_list_2) 以创建一个新列表。这就是我的处理方式:

updated_list=[]
for k in num_list:
 if k > value:
  updated_list=num_list[k]+num_list_2[k]

出于某种原因,我不断得到“列表索引超出范围”,我不确定这是为什么。由于我是初学者,因此将不胜感激任何帮助。提前致谢!

标签: pythonpython-3.x

解决方案


这里

num_list=[1,5,2,19,28,21]
num_list_2=[2,8,23,81,52,31]
value=3

updated_list=[]
for k, n in enumerate(num_list):
 if n > value:
    updated_list.append(n + num_list_2[k])
 else:
    updated_list.append(n)
      
print(updated_list)

你的方法很好,但你需要让索引指向数组的位置所以,用索引和值枚举列表,是的,将结果附加到列表中。

k 是索引,n 是 array[k] 处的值

注意:我还添加了一个 else 部分,如果 is 小于或等于 3,您只需推送第一个列表的值

谢谢


推荐阅读