社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

Paul T. • 4 年前 • 896 次点击  

我有一系列每月的数据,我正试图按季节检查。我有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
 
896 次点击  
文章 [ 3 ]  |  最新文章 4 年前
blhsing
Reply   •   1 楼
blhsing    5 年前

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

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    5 年前

例如,可以循环遍历列表中的所有索引/值,并测试给定项的索引是否是所选月份(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    5 年前

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