【发布时间】:2018-07-16 05:17:08
【问题描述】:
我指的是这个特定的答案Making nested lists same length。由于我还没有发表评论的权限,并且回答该主题的问题会违反规则,因此我提出了一个新问题。
我不完全理解答案。
在我的理解中,for循环中的迭代器row通常是一个整数值,它遍历myList中的每个元素。那么怎么可能使用len(row) 作为条件的一部分,因为它只是一个整数呢?有什么我想念的吗?
我已尝试将此解决方案应用于我的代码,但正如预期的那样,我收到一条错误消息
TypeError: object of type 'int' has no len()
args = ("object of type 'int' has no len()",)
with_traceback = <built-in method with_traceback of TypeError object>
参考这一行
row.extend(['null'*(len(maxSS7) - len(row))])
此外,我不明白 .extend 与 row 的使用,这是迭代器而不是列表。
这是答案中的相关部分。
maxLen = max(map(len, myList))
for row in myList:
if len(row) < maxLen:
row.extend(...)
非常感谢您提供简短的演练。
或者也许有更好的方法可以将所有嵌套列表的长度调整为相同的长度。
【问题讨论】:
-
不,
row不是整数。它也不是迭代器。这只是一个列表,其中有一个len。 -
试试
for row in myList: print('Row:', row)看看row到底是什么。 -
好的。基本上
fornest中的每个列表都做一些事情。我明白。这很有帮助。那么为什么它会抛出问题中提到的错误? -
您正确识别了协议。很好地发布另一个问题,而不是因为做你不应该做的事情而受到打击。有一个 +1
-
@MadPhysicist:谢谢。我有一些不太好的帖子,因为我还在学习规则。我快到了。
标签: python python-3.x list for-loop