Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从类对象列表中检索类属性_Python_Class - Fatal编程技术网

Python 如何从类对象列表中检索类属性

Python 如何从类对象列表中检索类属性,python,class,Python,Class,我已将nba数据集导入名为nba的变量中 这些是我的课程: class Player(): def __init__(self, data_row): self.player_name = data_row[0] class team(): def __init__(self,team_name): self.team_name = team_name self.roaster = [] for x

我已将nba数据集导入名为nba的变量中

这些是我的课程:

class Player():
        def __init__(self, data_row):
            self.player_name = data_row[0]

class team():
    def __init__(self,team_name):
        self.team_name = team_name
        self.roaster = []
        for x in nba:
            if x[3]==self.team_name:
                self.roaster.append(Player(x))
我想要的是将团队中的每个玩家存储到一个团队对象

spurs = team("TOT")
但是当我运行代码时,我会得到一个类对象列表,如下所示:

print(spurs.roaster)
[<__main__.Player at 0x2211b2d06a0>,
 <__main__.Player at 0x2211b2d06d8>,
 <__main__.Player at 0x2211b2d0630>,
 <__main__.Player at 0x2211b2d0588>,]
但它出现了一个错误:

AttributeError: 'list' object has no attribute 'player_name'
  • 如果您想看到播放机的可读安装,您应该实现_; str _;方法,例如:

    class Player():
        def __init__(self, data_row):
            self.player_name = data_row[0]
    
        def __str__(self):
            return self.player_name
    
  • 您的team.roaster attr是一个列表,因此您不能通过键访问它,您应该将其更改为dict,或者只是对其进行迭代:

    for roaster in spurs.roaster:
        print(roaster.player_name)
    

    你得到的错误是一种自我解释,
    spurs.roaster
    确实是一个列表。
    player\u name
    属性属于此列表中的项目。 要访问这些属性,您必须浏览您的列表

    for player in spurs.roaster:
        print(player.player_name)
    

    必须尝试将其转换为列表。我的意思是只需使用列表(热刺。罗亚斯特)并检查您的答案。
    roaster
    是一个包含许多球员的列表。你希望烘焙者.玩家名返回什么?它应该如何知道您感兴趣的播放器?您知道如何访问列表中的元素吗?如果是,则问题已解决33%。你知道如何迭代列表吗?是的。66%完成了。你知道如何建立新的列表吗?如果是,你就完成了。这里我假设您需要一个属性列表,它已经是一个列表了。我不想在列表中重复。我想通过一组代码获得列表中的球员名称。spurs.roaster[0]。player_name这一个给了我第一个球员名称。我想让所有球员都知道球队的名字。因此,没有更简单的方法来获得一个队的球员的名字。tnx pal。那么,我将使用循环。
    for player in spurs.roaster:
        print(player.player_name)