【问题标题】:Python error with flattening list of lists扁平化列表列表的 Python 错误
【发布时间】:2017-02-27 07:58:02
【问题描述】:

您好,我正在尝试展平以下列表列表,但我总是收到以下错误:

'int' 对象不可迭代

我也尝试了 itertools 的链,但仍然无法正常工作。我想解决方案很简单,但我真的看不到它!有人可以帮忙吗?

谢谢

 from itertools import chain

import operator

lista = [[1,2,3],[4,5,6],[7,8,9],[10,11,12]]

listone = lista[0][0],[-x[0] for x in lista[:2]]

#sumlistone = chain.from_iterable(listone)

sumlistone = [x for sublist in listone for x in sublist]

print listone

print sumlistone

【问题讨论】:

  • 打印listone的内容。是你预期的吗?
  • 您可能想要listone = [lista[0][0]] + [-x[0] for x in lista[:2]],但是listone 已经一个平面列表。还是您想从lista 创建sumlistonelistone的目的是什么?
  • Listone 只是一个中间列表,你的解决方案对我来说很好!谢谢
  • 是的,listone 的印刷品已经是我所期待的了。

标签: python list flatten


【解决方案1】:

这是你需要的吗?

lista = [[1,2,3],[4,5,6],[7,8,9],[10,11,12]]
listb = []

for sub in lista:
    listb.extend(sub)    # Modification suggested by @Dinesh Pundkar 

print(listb)
print(sum(listb))

【讨论】:

  • 扩展会节省一行
  • listb.extend(sub)
猜你喜欢
  • 2016-01-14
  • 2012-07-01
  • 2013-04-06
  • 2014-08-26
  • 2017-09-24
  • 1970-01-01
  • 2014-10-29
  • 2010-12-08
相关资源
最近更新 更多