在一个数字集里循环取值

我希望在一个数字集里循环取值代入下层循环
已知 day=31,29,31,30,28,30,31,31,30,31,30,31
我尝试了

for day in day:
for day in range(len(day)):

都不对。

for day in range(len(day)):
        GHI = np.zeros([24, day])

TypeError: object of type 'int' has no len()
for day in day:
        GHI = np.zeros([24, day])
TypeError:'int' object is not iterable

我需要12个在不同天数下GHI的矩阵

如果你这个问题还是延续之前的问题的话,你需要解决的还是数据不完整的问题,看你这个day的列表是把5月的3天去掉了,那这样需要解决的就是每天24小时是否齐全了,至于遍历两种方式都可以,主要是你的变量名取错了:

days=[31,29,31,30,28,30,31,31,30,31,30,31]
for day in days:
    GHI = np.zeros([24, day])
for i in range(len(days)):       
    day = days[i]
    GHI = np.zeros([24, day])

你的问题应该是day变量被重新赋值成一个数值了(int类型)
你代码中for day in day: 循环中的变量名与循环的对象同名了
循环之中day变量被重新赋值成一个数值了(int类型),day就不是列表或元组了
下次再循环遍历day变量就会出错,因为day变成int类型就无法遍历了

在for循环中的变量名不要与循环的对象同名
改成for d in day:即可

import numpy as np
day=[31,29,31,30,28,30,31,31,30,31,30,31]
for d in day:  #循环中的变量名不要与循环的对象同名
    GHI = np.zeros([24, d])
    print(GHI)

你的day是数据集
不要再把它当循环体变量
换个名字!

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632