【发布时间】:2011-11-06 01:39:08
【问题描述】:
如果我有一个清单:
to_modify = [5,4,3,2,1,0]
然后声明另外两个列表:
indexes = [0,1,3,5]
replacements = [0,0,0,0]
如何将to_modify的元素作为indexes的索引,然后将to_modify中的对应元素设置为replacements,即运行后indexes应该是[0,0,3,0,1,0]。
显然,我可以通过 for 循环做到这一点:
for ind in to_modify:
indexes[to_modify[ind]] = replacements[ind]
但是还有其他方法可以做到这一点吗?
我可以以某种方式使用operator.itemgetter 吗?
【问题讨论】:
-
您提到的循环解决方案有什么问题(我能看到的唯一问题是
l包含 m 范围之外的索引)?您能否为这个问题提供更多背景信息? -
@dbr:我认为他想用 m 中的值替换由 l 中的索引索引的 s 中的值,所以这里的越界没有问题。
-
它包含超出 a 范围的索引,因为您正在访问 a[index],这不好。
-
@steabert:很好,我没有看到,因为我看不到所有 1 字母变量。
-
“Python 的切片对象”与这里提出的问题无关。