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

我试图检索作者、姓名、观众、成本详细信息,在给定的杂志集合中,观众较少的人作为输入,即列表

我是python的初学者

我尝试的代码是:

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'}