如何将列表作为参数传递给Python中的函数

时间:2016-12-23 14:46:49

标签: python list python-3.x

所以我想将两个列表传递给我的函数。我的程序的目的是使用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

我做错了什么? 如何将列表作为参数传递给一个函数? 我该如何退回清单?

1 个答案:

答案 0 :(得分:3)

但是你没有传递名单。在括号中包含逗号分隔值(或不包含它们)将产生元组实例,而不是列表。

当您尝试使用SELECT COL1 FROM TABLE WHERE ISNULL(COL1, '') = '' 分配给该元组的元素时,将元组发送到函数的事实会失败,因为元组是不可变集合。

如果您需要列表,请将其括在括号中:

list_b[i] = ...