如何使用循环访问嵌套列表中的对象
How can I access objects from nested lists with a loop
当使用标准的 for 循环方法遍历嵌套的对象列表时,我收到错误消息
AttributeError: 'list' 对象没有属性 'val'
我正在寻找一种方法 return 来自嵌套对象的这些值
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']
正在寻找这个 return 或类似的
您忘记了嵌套 for
:
for x in block:
for y in x:
print(y.val)
问题出在你的 for 循环中。
您在作为列表列表的块上使用迭代器。
然后,通过执行 x.val
您试图访问列表的 val
属性,该属性不存在。
像 for y in x
.
一样尝试在 x 上再迭代一次
当使用标准的 for 循环方法遍历嵌套的对象列表时,我收到错误消息 AttributeError: 'list' 对象没有属性 'val'
我正在寻找一种方法 return 来自嵌套对象的这些值
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']
正在寻找这个 return 或类似的
您忘记了嵌套 for
:
for x in block:
for y in x:
print(y.val)
问题出在你的 for 循环中。
您在作为列表列表的块上使用迭代器。
然后,通过执行 x.val
您试图访问列表的 val
属性,该属性不存在。
像 for y in x
.