python - 将奇数指数乘以 2?

标签 python list

所以我正在编写一个函数,它将 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%2if i%2 != 0 更短)

关于python - 将奇数指数乘以 2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46036586/

相关文章:

python - 解码Jpeg/内容: 0 'refers to a tensor that does not exist

java - 无法从列表中删除对象

list - Kotlin - 创建具有重复元素的可变列表

list - 为什么++= 在 Scala 中不能使用相同的列表?

python - 谁能告诉我如何在不使用循环的情况下做到这一点?

python - Hadoop 和 Python : Disable Sorting

python - 如何在 Python 和 RobotFramework 之间传递在 Python 函数中创建的变量

python - 错误安装streamlit它说 "ERROR: Could not build wheels for pyarrow which use PEP 517 and cannot be installed directly"

python - 存储在列表中的特定序列

python - Python 中 2 个列表中字符串中的常见字符