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