所以我正在编写一个函数,它将 list
中奇数索引处的每个数字乘以 2
。不过我被卡住了,因为我真的不知道如何处理它。
这是我的代码。
def produkt(pnr):
for i in pnr:
if i % 2 != 0:
i = i * 2
return pnr
例如,如果我输入 produkt([1,2,3])
我会返回 [1,2,3]
但我希望它是 [2,2,6]
。
最佳答案
请注意,在您的示例中修改 i
不会更改输入列表中的值(整数不可变)。而且您还混淆了值及其位置。
此外,由于在 python 中索引从 0
开始,所以你弄错了。
在这些情况下,使用三元表达式的简单列表理解就可以了,使用 enumerate
来获取索引(使其从 1
开始到匹配你的情况,你可以随意调整):
[p*2 if i%2 else p for i,p in enumerate(pnr,1)]
(注意 if i%2
比 if i%2 != 0
更短)
关于python - 将奇数指数乘以 2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46036586/