奇数指数乘以2?

2024-05-16 09:36:32 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我正在编写一个函数,它将把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]。在


Tags: 函数in密码forreturnifdeflist
3条回答

使用列表理解:

奇数乘以2:

[x*2 if x%2 else x for x in pnr]

澄清问题措辞后: 将奇数索引处的数字乘以2:

^{pr2}$

注意,在您的例子中修改i并不会改变输入列表中的值(整数是不可变的)。你还把值和它们的位置混合在一起。在

另外,在python中,由于索引从0开始,所以得到的方法是错误的。在

在这些情况下,使用三元表达式进行简单的列表理解就可以了,使用enumerate来获得索引(使其从1开始匹配您的情况,您可以随意调整):

[p*2 if i%2 else p for i,p in enumerate(pnr,1)]

(注意if i%2if i%2 != 0短)

考虑使用列表理解

def produkt(pnr):
    return [k * 2 if k % 2 else k for k in pnr]

i = i * 2你只需重写一个局部变量。在

更新(问题已更改):

^{pr2}$

相关问题 更多 >