gpt4 book ai didi

python - 将元组传递给函数

转载 作者:太空宇宙 更新时间:2023-11-03 15:50:13 25 4
gpt4 key购买 nike

所以基本上我想要的是使用这个功能:

def __init__(self, myTuple: tuple):

for i in myTuple:
print(i[1])
self.dzien_tyg = i[1]
self.godz_rozp = i[2]
self.ilosc_godz = i[3]
self.czestatliwosc = i[4]
self.id_prowadzacego = i[5]
self.id_sali = i[6]
self.id_przedmiotu = i[7]
self.rodzaj = i[8]
self.nr_grupy = i[9]
self.id_studia = i[10]
self.nr_semetru = i[11]
self.id_specjalnosci = i[12]

使用此代码:

for row in df.iterrows():
print(row)
object = Grupa(*row)

我的 pycharms 说的是:

TypeError: __init__() takes 2 positional arguments but 3 were given

“行”看起来怎么样:

(0, dzien        1
godz 1
ilosc 2
tyg 0
id_naucz 52
id_sala 79
id_prz 13
rodz W
grupa 1
id_st 13
sem 1
id_spec 0
Name: 0, dtype: object)

我无法弄清楚 pycharms 在哪里看到这 3 个参数以及如何修复它

最佳答案

尝试将 *row 替换为 row[1]:

for row in df.iterrows():
print(row)
object = Grupa(row[1])
<小时/>

当您iterrows()时,从打印中可以看到,每一行都是一个双元素元组,第一个元素是行索引,第二个元素是一个 Series 对象,其中包含实际数据,当您使用 *row 时,您将索引和系列对象传递给构造函数。但从 __init__ 定义来看,您似乎只需要行对象。

<小时/>

而且,如果每一行都是一个对象,那么您不需要在 __init__ 中使用 for 循环,只需对原始代码进行最小的更改:

def __init__(self, myTuple: tuple):

i = myTuple
print(i[1])
self.dzien_tyg = i.iloc[0] # be careful here when you index the Series object with
self.godz_rozp = i.iloc[1] # integers, use iloc to access elements and also note
self.ilosc_godz = i.iloc[2] # the indices are zero based
...
<小时/>

或者,您可以使用实际索引更安全地访问:

def __init__(self, myTuple: tuple):

i = myTuple
print(i['dzien'])
self.dzien_tyg = i['dzien']
self.godz_rozp = i['godz']
self.ilosc_godz = i['ilosc']
...

关于python - 将元组传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41388674/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com