a=[] a.append(zip(a,6,2,8,9)) print(a)
时间: 2024-02-13 20:04:26 浏览: 9
这段代码会导致一个 TypeError。因为 zip() 函数需要传递可迭代对象作为参数,并且每个可迭代对象都应该包含相同数量的元素。但是在这个例子中,`a` 是一个空列表,它没有任何元素。因此,当您尝试执行 `zip(a,6,2,8,9)` 时,会出现以下错误:
```
TypeError: zip argument #1 must support iteration
```
如果您想将给定的值添加到列表中,您可以使用以下代码:
```
a = []
a.append((6, 2, 8, 9))
print(a)
```
这将在列表 `a` 中添加一个元组 `(6, 2, 8, 9)`。输出将是:
```
[(6, 2, 8, 9)]
```
相关问题
import numpy as np import pandas as pd import matplotlib.pyplot as mp df=pd.read_excel('C:/Users/86147/OneDrive/文档/66666.xlsx',header=0,usecols=(1,)) mylist1=df.values.tolist() room=[] for i in mylist1: room.append(i[0]) df=pd.read_excel('C:/Users/86147/OneDrive/文档/66666.xlsx',header=0,usecols=(2,)) mylist1=df.values.tolist() tomp=[] for i in mylist1: tomp.append(i[0]) room_tomp=zip(room,tomp) avge=[] ls=[] for i in range(1,185): ls.clear() for k,v in room_tomp: if k==i: ls.append(v) s=sum(ls) avg=s/2928 avge.append(avg) print(avge)修改这个代码让avge输出都为正常值
可以在每次遍历时重新生成room_tomp,避免其被清空的问题。修改后的代码如下:
```
import numpy as np
import pandas as pd
import matplotlib.pyplot as mp
df=pd.read_excel('C:/Users/86147/OneDrive/文档/66666.xlsx',header=0,usecols=(1,))
mylist1=df.values.tolist()
room=[]
for i in mylist1:
room.append(i[0])
df=pd.read_excel('C:/Users/86147/OneDrive/文档/66666.xlsx',header=0,usecols=(2,))
mylist1=df.values.tolist()
tomp=[]
for i in mylist1:
tomp.append(i[0])
avge=[]
for i in range(1,185):
ls=[]
room_tomp=zip(room,tomp)
for k,v in room_tomp:
if k==i:
ls.append(v)
s=sum(ls)
avg=s/2928
avge.append(avg)
print(avge)
```
这样就可以得到每个房间的平均温度了。
将这段代码改为求min{max{qixi}}这种目标函数 from scipy.optimize import linprog import matplotlib.pyplot as plt k = 0 c_values = [] Q_values = [] while k < 0.1: c = [-0.05, -0.27, -0.19, -0.185, -0.185] Aeq = [[1, 1.01, 1.02, 1.045, 1.065]] beq = [1] A = [[0.05, 0.27, 0.19, 0.185, 0.185]] b = [k] vlb = [0, 0, 0, 0, 0] vub = [] res = linprog(c=c, A_ub=A, b_ub=b, A_eq=Aeq, b_eq=beq, bounds=list(zip(vlb, vub))) x = res.x k += 0.001 print(k) print(x) Q = -res.fun c_values.append(a) Q_values.append(Q) plt.plot(c_values, Q_values, '.') plt.xlabel('a') plt.ylabel('Q') plt.axis([0,0.5, 0, 0.5]) plt.show()
以下是修改后的代码,用于求解目标函数min{max{qixi}}:
```python
from scipy.optimize import linprog
import matplotlib.pyplot as plt
a = 0
c_values = []
Q_values = []
while a < 0.1:
c = [0, 0, 0, 0, -1]
Aeq = [[1, 1.01, 1.02, 1.045, 1.065]]
beq = [1]
A = [[-1, 0, 0, 0, 0], [0, -1, 0, 0, 0], [0, 0, -1, 0, 0], [0, 0, 0, -1, 0], [0, 0, 0, 0, -1]]
b = [-a, -a, -a, -a, 0]
vlb = [0, 0, 0, 0, 0]
vub = []
res = linprog(c=c, A_ub=A, b_ub=b, A_eq=Aeq, b_eq=beq, bounds=list(zip(vlb, vub)))
x = res.x[:5]
a += 0.001
print(a)
print(x)
Q = max([q * x[i] for i, q in enumerate(c)])
c_values.append(a)
Q_values.append(Q)
plt.plot(c_values, Q_values, '.')
plt.xlabel('a')
plt.ylabel('Q')
plt.axis([0, 0.1, 0, 0.5])
plt.show()
```
请尝试运行修改后的代码,看看是否满足您的需求。它将计算目标函数min{max{qixi}}的最小值,并将结果绘制在图表上。x轴表示变量a的取值,y轴表示目标函数的值Q。图表的x轴范围是从0到0.1,y轴范围是从0到0.5。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![.zip](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)