所以我想将两个列表传递给我的函数。我的程序的目的是使用Gauss Jordan方法求解三个线性方程组。
import sys
from tkinter import *
def elim(x,list_a,list_b):
r=-list_b[x]/list_a[x]
for i in range(x-1,len(list_b)+1):
list_b[i]=list_b[i]+r*list_a[i]
return list_b
def mhello():
ma1=a1.get()
ma2=a2.get()
ma3=a3.get()
ma4=a4.get()
mb1=b1.get()
mb2=b2.get()
mb3=b3.get()
mb4=b4.get()
mc1=c1.get()
mc2=c2.get()
mc3=c3.get()
mc4=c4.get()
lista=(int(ma1),int(ma2),int(ma3),int(ma4))
listb=(int(mb1),int(mb2),int(mb3),int(mb4))
listc=(int(mc1),int(mc2),int(mc3),int(mc4))
elim(1,lista,listb)
print(listb)
当我输入值时,出现以下错误:
File "C:/Users/madhuri/Desktop/gauss.py", line 29, in mhello
elim(1,lista,listb)
File "C:/Users/madhuri/Desktop/gauss.py", line 6, in elim
list_b[i]=list_b[i]+r*list_a[i]
TypeError: 'tuple' object does not support item assignment
我做错了什么? 如何将列表作为参数传递给一个函数? 我该如何退回清单?
答案 0 :(得分:3)
但是你没有传递名单。在括号中包含逗号分隔值(或不包含它们)将产生元组实例,而不是列表。
当您尝试使用SELECT COL1 FROM TABLE WHERE ISNULL(COL1, '') = ''
分配给该元组的元素时,将元组发送到函数的事实会失败,因为元组是不可变集合。
如果您需要列表,请将其括在括号中:
list_b[i] = ...