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

如何在Python中将列表作为参数传递给函数,python,list,python-3.x,Python,List,Python 3.x,所以我想把两个列表传递到我的函数中。我的程序的目的是用高斯-乔丹方法求解一个由三个线性方程组组成的系统 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(

所以我想把两个列表传递到我的函数中。我的程序的目的是用高斯-乔丹方法求解一个由三个线性方程组组成的系统

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
我做错了什么? 如何将列表作为参数传递给函数?
如何返回列表?

但您没有传递列表。将逗号分隔的值括在括号中(或不含括号)将生成元组实例,而不是列表

当您尝试使用
list_b[i]=…
将元组分配给该元组的元素时,向函数发送元组的事实就会失败,因为元组是不可变的集合

如果您需要列表,请用括号括起:

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函数中获得一个索引器。我不能相信我忽略了这一点!