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

时间:2016-07-28 22:10:04

标签: python list object

所以,我有一个庞大的对象列表,其中包含:难度等级,数学表达式,结果。我正在尝试构建一个游戏,并希望打印表达式并检查结果,但我不知道如何打印单独的元素。 我的列表是什么样的: 3,s,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

1 个答案:

答案 0 :(得分:0)

根据列表map,您可以使用list_of_nivels = map(lambda x: x.nivel, expressoes) 列表理解获取所包含的类实例的属性:

list

在Python 3.x中,您需要在map上致电list_of_nivels = [expressao.nivel for expressao in expressoes] 以返回列表

理解:

import operator

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

要从列表中的每个实例返回多个属性,您可以使用operator.attrgetter

$(document).ready(function(){

      $("#first-showup header nav .nav-bar #menu-items ul li a").click(function(){

        var $block = $(this).data("block");

        var $thisBlock = $("#"+$block);

             $('html, body').animate({
              scrollTop: $thisBlock.offset().top
            }, 1000);

      });
    });