table
,我需要访问类属性.name
。
我不想使用嵌套循环,当然要打印它,我需要使用format()
。
for i in range(3):
print '{0} - {1} - {2}'.format(*table[i].name)
显然这没用。和(*table[i]).name
一样。我需要能够访问.name
列表中每个类对象的table[i]
。介意你是否让我走向正确的方向?提前谢谢。
答案 0 :(得分:4)
for row in table:
print(' - '.join('{0.name}'.format(elt) for elt in row))
答案 1 :(得分:1)
我不想使用嵌套循环
这太傻了。要迭代多维数组的每个元素,需要来使用嵌套循环。它们可能是隐含的(map
或列表理解),但这并不意味着它们不存在!以下内容比map
或令人讨厌的format
解包更加整洁和清洁。
for row in table:
for elt in row:
print <...>
如果您真的想知道如何使用您的方法:
import operator
for row in table:
print '{0} - {1} - {2}'.format(*map(operator.attrgetter('name'), row))
告诉我,与上面相比,这并不是很混乱和不清楚,更不用说你已经在魔法常数3中进行了硬编码 - 如果你想改成4x4表怎么办?
答案 2 :(得分:1)
像这样,例如:
for row in table:
print '{0} - {1} - {2}'.format(*[x.name for x in row])