在类对象列表中存储元组值

时间:2019-02-26 10:55:44

标签: python

我有一个python代码,可从数据库中提取信息。结果存储在列表中的元组中。我想将元组信息存储在一个类对象中。由于查询返回了多个结果,因此我想使用Object类的List。我不知道如何分配价值。以下是代码段:

if (rest==0) display --> { headerText: 'Finish', template: '<a class="btn btn-sucess" >Finish</a>'
Else display --> { headerText: 'In progress', template: '<a class="btn btn-danger" >In progress</a>'

结果为表单列表: [(1,'XYZ','P'),(2,'ABC','P'),(3,'DEF','A'),(4,'MNO','P')] < / p>

在摘要中,我想将结果存储在不同的Class对象中, Student1 = StudentDetails(1,'XYZ','P') Student2 = StudentDetails(2,'ABC','P')

2 个答案:

答案 0 :(得分:1)

您可以在实例化StudentDetails的同时迭代元组列表:

l = [(1, 'XYZ', 'P'), (2, 'ABC', 'P'), (3, 'DEF', 'A'), (4, 'MNO', 'P')]
my_students = [StudentDetails(*tup) for tup in l]
my_students
# [<__main__.StudentDetails at 0x7fea5a8259b0>,
#  <__main__.StudentDetails at 0x7fea5a825208>,
#  <__main__.StudentDetails at 0x7fea5a825cf8>,
#  <__main__.StudentDetails at 0x7fea5a825cc0>]

my_students[0].Name
# 'XYZ'

my_students[1].Name
# 'ABC

或者您可以使用dict

d = {"Student%s" %i : StudentDetails(*tup) for i, tup in enumerate(l)}
d['Student1'].Name
# 'XYZ'

答案 1 :(得分:0)

我认为这符合您的问题。

class StudentDetails():
    def __init__(self, id=1, Name="manoj", Status="Active"):
        self.id= id
        self.LinkName= Name        
        self.LinkStatus= Status
li = [(1, 'XYZ', 'P'), (2, 'ABC', 'P'), (3, 'DEF', 'A'), (4, 'MNO', 'P')]
list_obj = []
for i in list:
    student_details = StudentDetails()
    student_details.id = i[0]
    student_details.LinkName = i[1]
    student_details.LinkStatus = i[2]
    list_obj.append(student_details)