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