如何最好地打印由用户定义的实例变量创建的字典?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何最好地打印由用户定义的实例变量创建的字典?相关的知识,希望对你有一定的参考价值。
我正在尝试将母牛编成字典,访问它们的值,并将其打印到控制台。
将Cow的每个实例分配给list Cow中的索引。
我正在尝试如下创建字典:
for i in cows:
cowDict[i.getName] = (i.getWeight, i.getAge)
我希望能够使用我的母牛的名字访问字典的值,即:
c["maggie"]
但是,我的代码产生一个关键错误。
如果我打印整个词典,我会得到一些效果:
“ >:((>,>),等...“
我可以用实例变量替换.getName并获得所需的结果,但是,我建议不要使用这种方法。
使用Cow类型的实例变量创建字典的最佳实践是什么。>>
代码:
class cow(object):
""" A class that defines the instance objects name, weight and age associated
with cows
"""
def __init__(self, name, weight, age):
self.name = name
self.weight = weight
self.age = age
def getName(self):
return self.name
def getWeight(self):
return self.weight
def getAge(self):
return self.age
def __repr__(self):
result = '<' + self.name + ', ' + str(self.weight) + ', ' + str(self.age) + '>'
return result
def buildCows():
"""
this function returns a dictionary of cows
"""
names = ['maggie', 'mooderton', 'miles', 'mickey', 'steve', 'margret', 'steph']
weights = [3,6,10,5,3,8,12]
ages = [1,2,3,4,5,6,7]
cows = []
cowDict =
for i in range(len(names)):
#creates a list cow, where each index of list cow is an instance
#of the cow class
cows.append(cow(names[i],weights[i],ages[i]))
for i in cows:
#creates a dictionary from the cow list with the cow name as the key
#and the weight and age as values stored in a tuple
cowDict[i.getName] = (i.getWeight, i.getAge)
#returns a dictionary
return cowDict
c = buildCows()
我正在尝试将母牛整理成字典,访问它们的值,并将其打印到控制台。 Cow的每个实例都分配给list Cow中的索引。我正在尝试将字典创建为...
答案
getName是一个函数,请尝试
另一答案
您可以使用类似的方法简化此操作:
另一答案
这看起来像是zip的工作。我们可以将其与dict理解结合使用,以从任意键和值表达式创建字典,如下所示
以上是关于如何最好地打印由用户定义的实例变量创建的字典?的主要内容,如果未能解决你的问题,请参考以下文章
java中啥是堆和栈,如何应用,最好举个例子,并详细地说明一下,谢谢了