Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中访问元组列表中的变量时出现问题_Python_List_Tuples - Fatal编程技术网

在python中访问元组列表中的变量时出现问题

在python中访问元组列表中的变量时出现问题,python,list,tuples,Python,List,Tuples,该元组列表在实例化时传递给类,即在创建类或调用初始值设定项时。获取TypeError:“>=”在“tuple”和“int”错误的实例之间不受支持。救命啊!我对这件事还比较陌生,还没弄明白 class MedReport: def __init__(self,patients): self.patientname = patients[0] self.serum = patients[1] def reports(self):

该元组列表在实例化时传递给类,即在创建类或调用初始值设定项时。获取TypeError:“>=”在“tuple”和“int”错误的实例之间不受支持。救命啊!我对这件事还比较陌生,还没弄明白

class MedReport:
    def __init__(self,patients):
        self.patientname = patients[0]
        self.serum = patients[1]
       

    def reports(self):
        patientList = self.__dict__.values()
        index = 0
        
        for patients in patientList:
            if self.serum >= 80:
                print(self.patientname[index] + " has a heightened serum level")
            elif ((self.serum[index] > 40) and (self.serum[index] < 79)):
                print(self.patientname[index] + " has a moderate risk for infections")
            else:
                print(self.patientname[index] + " does not have a risk factor")
        index += 1

patients = [("John Blake", 22),("Jane Smith", 35),("Henry Baker", 77),("Thomas Cooper", 87)]

data = MedReport(patients)
data.reports()
class报告:
定义初始(自我,患者):
self.patientname=患者[0]
自身血清=患者[1]
def报告(自我):
patientList=self.\u dict\u.values()
索引=0
对于患者列表中的患者:
如果自身血清>=80:
打印(self.patientname[索引]+“血清水平升高”)
elif((自身血清[指数]>40)和(自身血清[指数]<79)):
打印(self.patientname[index]+“有中度感染风险”)
其他:
打印(self.patientname[索引]+“没有风险因素”)
指数+=1
患者=[(“约翰·布莱克”,22岁),(“简·史密斯”,35岁),(“亨利·贝克”,77岁),(“托马斯·库珀”,87岁)]
数据=医疗报告(患者)
数据.报告()

您正在将元组与整数进行比较。当您执行这个
self.serum=patients[1]
时,您得到的不是一个整数值,而是一个元组

示例:
self.serum=patients[1]
正在检索此:
(“Jane Smith”,35)

要检索元组中的整数,必须执行以下操作:
self.serum=patients[#index][0]

将元组与整数进行比较。当您执行这个
self.serum=patients[1]
时,您得到的不是一个整数值,而是一个元组

示例:
self.serum=patients[1]
正在检索此:
(“Jane Smith”,35)

要检索元组中的整数,您必须执行以下操作:
self.serum=patients[#index][0]
似乎希望
patients[0]
返回元组列表中所有
[0]
元素(名称)的列表,
patients[1]
返回所有
[1]
元素。索引并不是像那样自动分布在列表元素上——它只是索引列表本身。因此,您将
self.patientname
设置为元组
(“John Blake”,22)
,将
self.serum
设置为元组
(“Jane Smith”,35)

您应该做的是将整个
患者
列表保存在属性中,然后在循环时提取组件

class MedReport:
    def __init__(self,patients):
        self.patientlist = patients

    def reports(self):
        for index, (patientname, serum) in enumerate(self.patientlist):
            if serum >= 80:
                print(patientname + " has a heightened serum level")
            elif 40 < serum < 79
                print(patientname + " has a moderate risk for infections")
            else:
                print(patientname + " does not have a risk factor")

patients = [("John Blake", 22),("Jane Smith", 35),("Henry Baker", 77),("Thomas Cooper", 87)]

data = MedReport(patients)
data.reports()
class报告:
定义初始(自我,患者):
self.patientlist=患者
def报告(自我):
对于枚举(self.patientlist)中的索引(患者姓名、血清):
如果血清>=80:
打印(patientname+“血清水平升高”)
elif 40<血清<79
打印(patientname+“有中度感染风险”)
其他:
打印(patientname+“没有风险因素”)
患者=[(“约翰·布莱克”,22岁),(“简·史密斯”,35岁),(“亨利·贝克”,77岁),(“托马斯·库珀”,87岁)]
数据=医疗报告(患者)
数据.报告()

您似乎希望
患者[0]
返回元组列表中所有
[0]
元素(名称)的列表,而
患者[1]
返回所有
[1]
元素。索引并不是像那样自动分布在列表元素上——它只是索引列表本身。因此,您将
self.patientname
设置为元组
(“John Blake”,22)
,将
self.serum
设置为元组
(“Jane Smith”,35)

您应该做的是将整个
患者
列表保存在属性中,然后在循环时提取组件

class MedReport:
    def __init__(self,patients):
        self.patientlist = patients

    def reports(self):
        for index, (patientname, serum) in enumerate(self.patientlist):
            if serum >= 80:
                print(patientname + " has a heightened serum level")
            elif 40 < serum < 79
                print(patientname + " has a moderate risk for infections")
            else:
                print(patientname + " does not have a risk factor")

patients = [("John Blake", 22),("Jane Smith", 35),("Henry Baker", 77),("Thomas Cooper", 87)]

data = MedReport(patients)
data.reports()
class报告:
定义初始(自我,患者):
self.patientlist=患者
def报告(自我):
对于枚举(self.patientlist)中的索引(患者姓名、血清):
如果血清>=80:
打印(patientname+“血清水平升高”)
elif 40<血清<79
打印(patientname+“有中度感染风险”)
其他:
打印(patientname+“没有风险因素”)
患者=[(“约翰·布莱克”,22岁),(“简·史密斯”,35岁),(“亨利·贝克”,77岁),(“托马斯·库珀”,87岁)]
数据=医疗报告(患者)
数据.报告()

患者[0]
(“约翰·布莱克”,22)
患者[1]
(“简·史密斯”,35)
自我。血清[index]
返回一个元组,您需要访问该元组中要与
40
79
进行比较的值。根据上面的评论判断,它将是
self.serum[index][1]
您试图一次实例化许多患者,但您没有在代码中处理它,在您的初始化中发生的是self.patientname保留您患者列表的第一个元素,即整个类型(“John Blake”,22),self.serum=patients[1]取患者列表中的第二个元素(“Jane Smith”,35),如果忽略患者,则取其余元素
患者[0]
(“John Blake”,22)
患者[1]
(“Jane Smith”,35)
自身血清[index]返回一个元组,您需要访问该元组中要与
40
79
进行比较的值。根据上面的评论判断,它将是
self.serum[index][1]
您试图一次实例化许多患者,但您没有在代码中处理它,在您的初始化中发生的是self.patientname保留您患者列表的第一个元素,即整个类型(“John Blake”,22),self.serum=patients[1]获取患者列表的第二个元素(“Jane Smith”,35),如果忽略患者,则获取其余元素