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

标签 python python-3.x class nested-lists

当使用标准的 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

关于python - 如何使用循环访问嵌套列表中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57072043/

相关文章:

python - 在函数之间传递参数的 pythonic 方式是什么?

python - 使用 beautifulsoup get_text()

python - 如何避免大写首字母缩略词被.capitalize() 小写? Python

python - 在 python 中将 .csv 文件打印为列表

python - 从数组中选择一个随机元素

c++ - 在这种情况下如何释放内存?

python - Python 中的 "find . -regex ..."或如何查找全名(路径+名称)与正则表达式匹配的文件?

ruby-on-rails - 如何以 "dynamically"打开一个类以便向其添加一个使用局部变量的作用域方法?

java - 检测Java类是否可加载

python - 使用 PyBrain 神经网络预测时间序列数据