Skip to main content
 首页 » 编程设计

python之如何使用循环访问嵌套列表中的对象

2025年05月04日21pengyingh

当使用标准的 for 循环方法遍历嵌套的对象列表时,我收到错误 AttributeError: 'list' 对象没有属性 'val'

我正在寻找一种从嵌套对象返回这些值的方法

class Class: 
    def __init__(self,val,var_1 = True,var_2 = False,var_3 = True): 
        self.val = val 
        self.var_1 = var_1 
        self.var_2 = var_2 
        self.var_3 = var_3 
 
    def print_num(self): 
        return self.val 
 
 
block = [[Class("O") for x in range(10)] for y in range(10)] 
 
print(block[0][0].val) # this works returns "O" or correct var bool value 
 
for x in block:        #This doesn't work  
    print(x.val) 
 
['O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O'] 
['O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O'] 
['O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O'] 
['O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O'] 
['O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O'] 
['O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O'] 
['O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O'] 
['O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O'] 
['O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O'] 
['O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O'] 

寻找这个返回,或类似的

请您参考如下方法:

问题出在你的 for 循环中。

您在作为列表列表的 block 上使用和迭代器。 然后,通过执行 x.val,您将尝试访问列表的 val 属性,该属性不存在。

尝试在 x 上再迭代一次,例如 for y in x。