如何处理对象列表中的独立元素?

2024-09-24 22:24:17 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,我有一个庞大的对象列表,包括:难度,数学表达式,结果。我试图建立一个游戏,并希望打印表达式和检查结果,但我不知道如何打印一个单独的元素。 我的清单是这样的: 南纬3号,520+370,890 我只想打印表达式: 类似于:print(list,key=lambda x:x.nivel) 但是列表中只有一个元素是一个对象(在本例中是nivel)

代码:

class Expressao(object):

    def __init__(self, nivel, tipo, expressao, resposta):
        self.nivel = nivel
        self.tipo = tipo
        self.expressao = expressao
        self.resposta = resposta

    def __repr__(self):
        return self.nivel + ", " + self.tipo + ", " + self.expressao + ", " + self.resposta`

class FonteDeExpressoes(object):
    import csv
    def lista (self):
        expressoes = []
        with open('exp.txt') as f:
            for line in f:
                row = line.split('\t')
                exp = Expressao(row[0], row[1], row[2], row[3])
                expressoes.append(exp)
        #print expressoes
        return expressoes

Tags: 对象self元素列表表达式defclassrow
1条回答
网友
1楼 · 发布于 2024-09-24 22:24:17

给定列表expressoes,可以使用map列表理解获取所包含类实例的属性:

list_of_nivels = map(lambda x: x.nivel, expressoes)

在python3.x中,需要调用liston map来返回列表

理解地说:

list_of_nivels = [expressao.nivel for expressao in expressoes]

要从列表中的每个实例返回多个属性,可以使用^{}

import operator

nivels_and_resposta = [operator.attrgetter('nivel', 'resposta')(x) for x in expressoes]

相关问题 更多 >