我有一个嵌套列表,其中包含用字符串填充的列表。我想要做的是使这个嵌套中的每个列表的长度与该嵌套中最长的可用列表的长度相同。这听起来很简单,但我的尝试失败了(我对编程完全陌生)而且我找不到足够相关的已回答问题来解决我的问题。
首先,我确定最长列表的长度:
maxSS7 = max(len(i) for i in ssValues7))
然后,如果每个列表的长度与最长列表的长度不同,我将使用 for 循环将每个列表扩展一定数量的“null”:
for row in ssValues7:
if row < len(maxSS7):
row.extend(['null' * (len(maxSS7) - len(row))])
我通过'null' * 最长列表和当前列表之间的差异来扩展行。没有发生错误,但不幸的是它似乎对我的嵌套列表没有任何作用。
有人可以告诉我我的错误吗?任何帮助将不胜感激。
最佳答案
表达式 'null' * (len(maxSS7) - len(row))
创建一个 可能很长的字符串。
使用
row.extend('null' for _ in xrange(maxSS7 - len(row)))
相反。生成器表达式让您避免创建额外的列表对象只是为了扩展 row
。
>>> ['null' * 2]
['nullnull']
>>> ['null' for _ in xrange(2)]
['null', 'null']
但是 .extend
调用本身永远不会到达,因为您的 if
语句正在测试错误的东西;将其更改为:
if len(row) < maxSS7:
maxSS7
是一个数字(最长列表的长度);询问该数字的长度并不是您想要的。
关于python - 如何通过添加到列表列表中使所有列表的长度相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12550929/