如何在Python中定期返回多个元素?

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

我有一系列每月数据,我试图按季节检查。我有851个月(71年)但是只想选择所有年份(3月,4月和5月)的气象春季,其中1月= 0。

我知道我可以每隔三月选择一次,比如切割data[2::12],但我如何一起选择每个三月,四月和五月?

所以,例如,如果我有[0,1,2,3,4,5,...,22,23,24](24个月),我想返回[2,3,4,14,15,16](两年的三月,四月和五月)。

python slice
3个回答
0
投票

欢迎来到stackoverflow

我会尝试列表理解:

[monthly_data for i, monthly_data in enumerate(all_data) if i%12 in (2,3,4)]

这样做是为了选择monthly_data序列中的每个all_data项目,只要其指数i除以12的其余部分为2,3或4。


0
投票

例如,您可以循环遍历列表中的所有索引/值,并测试给定项目的索引是否是所选月份的倍数(2,3,4)

res = []
spring_months = [2, 3, 4]
for index, value in enumerate(data):
    if index%12 in spring_months:
        res.append(value)

0
投票

您可以在嵌套列表解析中使用列表切片:

m = list(range(24))
print([j for i in range(2, len(m), 12) for j in m[i:i+3]])

这输出:

[2, 3, 4, 14, 15, 16]
© www.soinside.com 2019 - 2024. All rights reserved.