python - 如何通过添加到列表列表中使所有列表的长度相同

标签 python python-2.7

我有一个嵌套列表,其中包含用字符串填充的列表。我想要做的是使这个嵌套中的每个列表的长度与该嵌套中最长的可用列表的长度相同。这听起来很简单,但我的尝试失败了(我对编程完全陌生)而且我找不到足够相关的已回答问题来解决我的问题。

首先,我确定最长列表的长度:

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/

相关文章:

python - 包含 CSV 文件的字典列表中元素的平均值

python - 如何在 python 中将 ssh 通过 ssh 代理与 ssh-agent 并行进行身份验证?

python-2.7 - 用 jinja 解析 url

javascript - 从抓取的 Javascript 表列表创建 DataFrame

python - 使用 tor 和 torctl 绕过代理

python多线程无法输出完整结果

python - 我自己制作分数课

python - 奇怪的行为 : ternary operator for functions

python - python 中是否有一个函数可以替换嵌套列表中字符串中的单个字符?

python - 是否有标准方法告诉 py.test 针对特定代码运行?