Python - 修改for循环变量

标签 python for-loop

我有这个功能:

numbers = [3, 4, 6, 7]

for x in numbers:
    a = 5 - x
    b = 5 + x
    c = 5 * x
    print(x, a, b, c)

它到底做什么并不重要,只有 x 相关。

我想修改 x 以便:

for x in numbers:
    a = 5 - (x + 2)
    b = 5 + (x + 2)
    c = 5 * (x + 2)
    print((x + 2), a, b, c)

但显然到处添加 + 2 很烦人,所以我只想为 x 提供另一个值。

当然,我可以创建另一个变量,如下所示:

for x in numbers:
    modifiedX = x + 2
    a = 5 - modifiedX
    b = 5 + modifiedX
    c = 5 * modifiedX
    print(modifiedX, a, b, c)

但我很好奇是否可以在不添加另一行的情况下获得相同的结果,例如:

for x + 2 in numbers:
    a = 5 - x
    b = 5 + x
    c = 5 * x
    print(x, a, b, c)

或者这个:

x + 2 for x in numbers:
    a = 5 - x
    b = 5 + x
    c = 5 * x
    print(x, a, b, c)

最后 2 个代码块不是正确的 Python 语法,所以我很好奇:是否有正确的方法可以在不添加更多行的情况下获得 x 的修改版本?

注意:我仍然想保留原始号码列表,因此我不想直接更改列表中的号码。

最佳答案

您可以使用 map() 生成一个新的迭代器,其中包含递增 2 的 numbers 元素。由于 map() 创建一个新的可迭代对象,原始列表未修改:

numbers = [3, 4, 6, 7]

for x in map(lambda x: x + 2, numbers):
    a = 5 - x
    b = 5 + x
    c = 5 * x
    print(x, a, b, c)

输出:

5 0 10 25
6 -1 11 30
8 -3 13 40
9 -4 14 45

关于Python - 修改for循环变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71542486/

相关文章:

python - 捕获客户端断开连接的事件! - Gevent/ python

javascript - 根据具有特定长度的现有字符串获取新字符串

java - 使用while循环格式化的功率表和逻辑错误

python - 如何 for 循环遍历两个嵌套循环内的字符串列表并避免外部循环造成的冗余?

c - 优化 C 中的 for() 循环

python - Pickle:处理更新的类定义

python - 取决于一个参数的不确定循环次数

c++ - 构建多级字典 : a python to c++ translation

java - 编写一个接受列表的减法循环

python - 在 python 中提取表单键值对表单 html 页面或解析 html 页面