簡體   English   中英

如何獲取我從 class 創建的對象列表的鍵和值。Python

[英]How to get the key and values of a list of objects where I created from a class. Python

class BallPlayer:
    def __init__(self,name:str,number:int,goals:int,assists:int,minutes:int):
        self.minutes = minutes
        self.assists = assists
        self.goals = goals
        self.number = number
        self.name = name
        


def most_goals(a:list):
    newList=sorted(a, key=lambda item:item.goals,reverse=True)
    return newList
if __name__ == "__main__":
    player1 = BallPlayer("Archie Bonkers", 13, 5, 12, 46)
    player2 = BallPlayer("Speedy Tickets", 7, 2, 26, 55)
    player3 = BallPlayer("Cruella De Hill", 9, 1, 32, 26)
    player4 = BallPlayer("Devilled Tasmanian", 12, 1, 11, 41)
    player5 = BallPlayer("Donald Quack", 4, 3, 9, 12)
    
    team = [player1, player2, player3, player4, player5]
    print(most_goals(team))

我創建一個 class 並從該 class 創建對象並將它們放入列表中。 一個 function 占據了列表並且應該返回我得分最多的球員的名字。 我無法通過使用 newList[0].name 獲得任何價值,newList 給了我一個我不理解的代碼列表

[< main .BallPlayer object at 0x000001D6FA4833C8>, < main .BallPlayer object at 0x000001D6FA487288>, < main .BallPlayer object at 0x000001D6FA4871C8>, < main .BallPlayer object at 0x000001D6FA487208>, < main .BallPlayer object at 0x000001D6FA487248>]

我應該怎么做才能像普通列表一樣從此對象列表中獲取值?

假設你想獲得進球最多的球員的名字:

def most_goals(a:list):
    newList=sorted(a, key=(lambda item:item.goals))
    return newList[0].name

這將按goals屬性對對象列表進行排序,並為每個項目使用 lambda function 訪問它。 它不再返回整個對象列表,而是返回第一個對象的name屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM