def sj(a,b,c): x=pd.date_range(a,b) y=[(i-timedelta(44)).strftime("%Y-%m-%d") for i in x] x=x.strftime("%Y-%m-%d") z=[c for i in len(a)] return [zip(x,y,z)] 报错TypeError: 'int' object is not iterable
时间: 2023-07-16 21:15:52 浏览: 106
python时间日期函数与利用pandas进行时间序列处理详解
5星 · 资源好评率100%
这个错误通常发生在尝试迭代一个整数值时,因为整数对象不是可迭代的。在你的代码中,错误可能是因为 `len(a)` 返回的是一个整数值,而你在 `zip(x,y,z)` 中尝试迭代它。
为了解决这个问题,你可以使用 `range()` 函数来生成一个整数序列,作为 `zip()` 函数的迭代器输入。修改你的代码如下:
```python
def sj(a, b, c):
x = pd.date_range(a, b)
y = [(i - timedelta(44)).strftime("%Y-%m-%d") for i in x]
x = x.strftime("%Y-%m-%d")
z = [c for i in range(len(a))] # 使用 range() 函数生成整数序列
return [zip(x, y, z)]
```
这样修改后,`z` 将会是一个包含了多个 `c` 元素的列表,长度与 `a` 列表相同。然后,`zip()` 函数将会同时迭代 `x`、`y` 和 `z` 三个列表,并返回一个包含了多个元组的列表。
阅读全文