如何在列表中的一些数字上添加整数?

时间:2019-02-10 16:54:00

标签: python

我有一个列表,我想在列表中的每个值之后的第五个值之后添加一个整数。

PageNumbers = [30, 50, 80, 120, 160, 200, 240, 280]
PageNumbers = [x+100 for x in PageNumbers]

如何制作PageNumbers = if PageNumber[index] > 5, then [x+100 for x in PageNumbers] else PageNumber[index]

我想要的输出是[30, 50, 80, 120, 160, 300, 340, 380]

6 个答案:

答案 0 :(得分:3)

检出enumerate可以在迭代列表时同时获取索引和值。

这将允许您执行以下操作:

PageNumbers = [30, 50, 80, 120, 160, 200, 240, 280]
PageNumbers = [val + 100 if idx > 4 else val for idx, val in enumerate(PageNumbers)]

*请注意,我实际上使用了idx > 4,这意味着您在示例中使用并超过了第5个值(基于0索引)。当然,您可以更改为使用所需的任何索引。

在此处查看有关enumerate的简短文章和讨论: Python using enumerate inside list comprehension

答案 1 :(得分:2)

将列表分为两部分:

PageNumbers = PageNumbers[:5] + [x+100 for x in PageNumbers[5:]]

答案 2 :(得分:1)

for i in range(5, len(PageNumbers)):
    PageNumbers[i] += 100

答案 3 :(得分:1)

只需将其分配回

PageNumbers[5:]=[x +100 for x in PageNumbers[5:]]
PageNumbers
[30, 50, 80, 120, 160, 300, 340, 380]

答案 4 :(得分:0)

使用内置的conditional expressionenumerate

>>> PageNumbers = [30, 50, 80, 120, 160, 200, 240, 280]
>>> [x + 100 if i > 4 else x for i, x in enumerate(PageNumbers)]
[30, 50, 80, 120, 160, 300, 340, 380]

答案 5 :(得分:0)

仅举一个使用NumPy的示例:

import numpy as np

PageNumbers = np.array([30, 50, 80, 120, 160, 200, 240, 280])

PageNumbers[5:] += 100

print(PageNumbers)
#=> [ 30  50  80 120 160 300 340 380]