我希望在一个数字集里循环取值代入下层循环
已知 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是数据集
不要再把它当循环体变量
换个名字!