大家好,我最近開始學習 Python 集合模塊。當我嘗試實作 namedtuple 集合以進行練習時,我遇到了一個錯誤。我嘗試在官方 Python 檔案中搜索,但找不到。大家能不能幫幫我。
我得到的錯誤是,即使我在 namedtuple 中為我的某些欄位指定默認值,我也得到
#Importing namedtuple from collections module
from collections import namedtuple
#Creating a Student namespace
Students = namedtuple('Student','Roll_No Name Marks Percentage Grad', defaults=
[0,''])
Students._field_defaults
#Creating students
ram = Students._make([101,'Ram Lodhe',[95,88,98]])
shaym = Students._make([101,'Shyam Verma',[65,88,85]])
geeta = Students._make([101,'Geeta Laxmi',[86,90,60]])
venkat = Students._make([101,'Venkat Iyer',[55,75,68]])
ankita = Students._make([101,'Anikta Gushe',[88,90,98]])
TypeError Traceback (most recent call last)
ram = Students._make([101,'Ram Lodhe',[95,88,98]])
TypeError: Expected 5 arguments, got 3

uj5u.com熱心網友回復:
根據@jasonharper,_make()似乎繞過了默認值。所以解決方法是直接構造namedtuple:
ram = Students(101,'Ram Lodhe',[95,88,98])
或者,您可以手動將默認值傳遞給_make():
ram = Students._make([101,'Ram Lodhe',[95,88,98], *Students._field_defaults.values()])
uj5u.com熱心網友回復:
您的命名元組需要 5 個元組條目,但是,您提交了一個包含最后三個條目的串列(這是一個物件)。我修改了你的代碼(命名很糟糕,如果你想保留,請更改)現在它可以作業了。
Students = namedtuple('Student','Roll_No Name List_ofMarksPercentageGrad', defaults=
[0,''])
到目前為止,我不知道有任何選項可以告訴 namedtuples 條目是帶有命名條目的串列。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/478064.html
標籤:Python python-3.x 命名元组
下一篇:如何根據條件從元組中洗掉元素?
