Python 如何访问自定义对象列表中的字典值?
我有以下玩具对象:Python 如何访问自定义对象列表中的字典值?,python,list,dictionary,object,Python,List,Dictionary,Object,我有以下玩具对象: x = [Agg({ 'name': 'James', 'class': 'calculus1', 'avg': 90}), Agg({ 'name': 'Mary', 'class': 'calculus1', 'avg': 99})] 因此,外括号[表示这是一个数据类型Agg系列的列表](不,它是一个类对象-类Agg-请参阅注释)。外括号(对我来说,表示Agg是一个元组类对象,{with key values]
x = [Agg({ 'name': 'James',
'class': 'calculus1',
'avg': 90}),
Agg({ 'name': 'Mary',
'class': 'calculus1',
'avg': 99})]
因此,外括号[表示这是一个数据类型Agg系列的列表](不,它是一个类对象-类Agg-请参阅注释)。外括号(对我来说,表示Agg是一个元组类对象,{with key values]表示一个字典。我想将“avg”的键值放入一个新的列表中,avg使
avgs=[90,99,50100]
我认为答案涉及到对列表的理解,大致如下:z=[x[0]表示a in x]
,但我不理解访问Agg的语法。我怎么做?我想Agg是一个返回pandas.Series的函数,如下所示:
import pandas as pd
def Agg(x):
return pd.Series(x)
因此,您可以通过以下方法轻松获得平均值:
result=[i.avg for i in x]
>>>print(result)
[90, 99]
(如果您能提供更多关于Agg的信息,它会更具体)我想Agg是一个返回pandas.Series的函数,如下所示:
import pandas as pd
def Agg(x):
return pd.Series(x)
因此,您可以通过以下方法轻松获得平均值:
result=[i.avg for i in x]
>>>print(result)
[90, 99]
(如果您可以提供更多关于Agg的信息,它会更具体)您可以使用嵌套循环
前任:
对于x中的i:
对于x[i]中的j
我认为这将有助于访问字典。您可以使用嵌套循环
前任:
对于x中的i:
对于x[i]中的j
我想这将有助于访问字典。这实际上是两个对象(x和y)。Agg到底是什么?这与pandas.DataFrame()相等吗?我删除了Y,谢谢-这不相关。至于Agg是什么,我不确定-我以前从未见过它。这是对象显示的方式。可能是熊猫系列,但我不熟悉,因此有一个问题。这实际上是两个对象(x和Y)。Agg到底是什么?这与pandas.DataFrame()相等吗?我删除了Y,谢谢-它不相关。至于Agg是什么,我不确定-我以前从未见过它。这是对象的显示方式。可能是熊猫系列,但我不熟悉它,因此问题就来了。只是尝试过。返回
类型错误:“Agg”对象不可下标再仔细查看一下,我不知道想象Agg是某种命名实体。我可以通过输入x.df
强制x成为数据帧,但x[0]。df
抛出一个AttributeError:“super”对象没有属性“df”
。我刚刚意识到我可以通过x[0]访问各个字段。avg
-查看您的响应。而不是结果=[I['avg']对于x中的i]
,这非常有效:result=[i.avg for i in x]
谢谢你的帮助太好了!如果问题得到解决,你能接受一些答案吗?谢谢-我想请你在第二个代码块答案中从括号编辑到.obj。我想我需要修改问题标题,因为Agg代表一个自定义对象,而不是元组。这就是为什么我们可以使用。句号!刚刚尝试过。返回TypeError:“Agg”对象不可下标
再仔细研究一下,我认为Agg是某种命名实体。我可以通过输入x.df
强制x成为数据帧,但x[0].df
抛出一个属性错误:“super”对象没有属性“df”
。我刚刚意识到我可以通过x[0]访问各个字段。avg
-查看您的响应。这不是结果=[I['avg']表示x中的I]
,而是非常有效的:结果=[I.avg表示x中的I]
谢谢你的帮助太好了!如果问题得到解决,你能接受一些答案吗?谢谢-我想请你在第二个代码块答案中从括号编辑到.obj。我想我需要修改问题标题,因为Agg代表一个自定义对象,而不是元组。这就是为什么我们可以使用。时期