Py学习  »  Python

如何在python中以固定的间隔返回多个元素?

Paul T. • 6 年前 • 1861 次点击  

我有一系列每月的数据,我正试图按季节检查。我有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] (3月、4月和5月为两年)。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/43837
文章 [ 3 ]  |  最新文章 6 年前
blhsing
Reply   •   1 楼
blhsing    6 年前

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

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]
Manu
Reply   •   2 楼
Manu    6 年前

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

res = []
spring_months = [2, 3, 4]
for index, value in enumerate(data):
    if index%12 in spring_months:
        res.append(value)
KonstantinosKokos
Reply   •   3 楼
KonstantinosKokos    6 年前

欢迎使用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。