Python 从列表中获取最小值
我试图检索作者、姓名、观众、成本详细信息,在给定的杂志集合中,观众较少的人作为输入,即列表 我是python的初学者 我尝试的代码是:Python 从列表中获取最小值,python,list,class,object,oop,Python,List,Class,Object,Oop,我试图检索作者、姓名、观众、成本详细信息,在给定的杂志集合中,观众较少的人作为输入,即列表 我是python的初学者 我尝试的代码是: class Magazine: def __init__(self,Author,Viewers,Cost,Name): self.Author=Author self.Viewers=Viewers self.Cost=Cost self.Name = Name clas
class Magazine:
def __init__(self,Author,Viewers,Cost,Name):
self.Author=Author
self.Viewers=Viewers
self.Cost=Cost
self.Name = Name
class Publisher:
def __init__(self,magazineCollection):
self.magazineCollection = magazineCollection
def findMinimumMagazineByViewers(self,Magazine):
empty=[]
for i in self.Magazine:
if min(i.viewers):
empty.append(i.Name,i.Author,i.Viewers,i.Cost)
print(empty)
if __name__=='__main__':
l=[['satya',24,320,'S'],['lakshmi',23,340,'L']]
obj=Publisher(l)
obj1=obj.findMinimumMagazineByViewers(l)
print(obj1)
错误是:
AttributeError:“Publisher”对象没有属性“Magazine”
有人能帮我做这个吗你可以创建一个
杂志的列表
,使其可搜索:
class Magazine:
def __init__(self, Author, Viewers, Cost, Name):
self.Author = Author
self.Viewers = Viewers
self.Cost = Cost
self.Name = Name
class Publisher:
def __init__(self, magazineCollection):
# create all magazines
self.magazineCollection = [Magazine(*m) for m in magazineCollection]
def findMinimumMagazineByViewers(self):
empty = []
# filter my minimum Viewers and return the Magazine instance
i = min(self.magazineCollection, key=lambda x: x.Viewers)
empty.append((i.Name, i.Author, i.Viewers, i.Cost))
return i
if __name__ == '__main__':
l = [['satya', 24, 320, 'S'], ['lakshmi', 23, 340, 'L']]
obj = Publisher(l)
obj1 = obj.findMinimumMagazineByViewers()
print(obj1.__dict__)
输出:
Magazine
是方法findMinimumMagazineByViewers
的参数输入。您从未将其设置为类属性,例如迭代self.Magazine
self.Magazine。它不存在。您的意思是在self.magazineCollection
(属性)上迭代,还是在作为参数传递给该方法的杂志上迭代?看起来它们是一样的,这毫无意义。l
是一个列表列表。它应该是一个杂志的列表
,否?@johnnymapp是杂志的列表,我想从中获得一个杂志的详细信息,其中包括较少的浏览者。另外,findMinimumMagazineByViewers
的参数不应该是一个数字吗?
{'Author': 'lakshmi', 'Viewers': 23, 'Cost': 340, 'Name': 'L'}