如何在列表中的整数加在一起只有一些数字?

问题描述 投票:0回答:6

我有一个名单,我想一个整数添加到每个值在列表中,过去的第五个值。

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]

python
6个回答
2
投票

将列表分为两个部分:

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

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这意味着什么过去五日值(0 - 基于索引的),你注意到并在您的示例中使用。你可以,当然,改变使用你想要哪个索引。

见短桩和讨论enumerate这里:Python using enumerate inside list comprehension


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

1
投票

刚分配回

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

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]


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]
© www.soinside.com 2019 - 2024. All rights reserved.