是否可以通过单个循环继续增加列表中的值?

时间:2018-04-09 19:17:42

标签: python-3.x loops

如果我有以下列表: 'new = [1,2,3,4,5]' 我将计数器值设置为0: 'counter = 0' 如果我想继续将列表值增加1/10,直到数字全部增加1,我可以在一个循环中执行此操作吗?

我之前尝试的代码是:

[1.1, 2.1, 3.1, 4.1, 5.1]
[1.2, 2.2, 3.2, 4.2, 5.2]

我想要的输出是:

[2, 3, 4, 5, 6]

等..一直到结束列表值:

{{1}}

1 个答案:

答案 0 :(得分:0)

你或多或少应该能够做你想做的事。但是,处理特定值0.1有点棘手,因为它不能精确地再现为浮点数(当你乘以它时,你可能得到0.30000000000000004之类的值。 3而不是预期的0.3)。但您可以忽略这些错误或以不同方式计算值(例如3/10而不是0.1*3)。

尝试这样的事情:

for i in range(1, 11):
    newLst = []
    for j in range(1, 6):
        newLst.append(j + i / 10)
    print(newLst)

如果您使用的是Python 2,则以前需要执行i / 10.0(使用float文字)以确保除法给出浮点结果,而不是截断为整数。默认情况下,Python 3会进行浮动除法,如果将from __future__ import division放在Python 2中的文件顶部,也可以获得此行为。