【发布时间】:2016-04-15 18:43:02
【问题描述】:
我正在尝试使用列表推导将嵌套列表分成两个嵌套列表。如果不将内部列表转换为字符串,我就无法这样做,这反过来又会破坏我以后访问/打印/控制值的能力。
我试过这个::
paragraphs3 = [['Page: 2', 'Bib: Something', 'Derived: This n that'], ['Page: 3', 'Bib: Something', 'Argument: Wouldn't you like to know?'], ...]
derived = [k for k in paragraphs3 if 'Derived:' in k]
therest = [k for k in paragraphs3 if 'Derived:' not in k]
发生的情况是整个段落 3 = [] 最终都在其余 = [] 中,除非我这样做:
for i in paragraphs3:
i = str(i)
paragraphs4.append(i)
如果我随后将段落 4 提供给列表理解,我会得到两个列表,就像我想要的那样。但它们不再是嵌套列表,因为:
for i in therest:
g.write('\n'.join(i))
g.write('\n\n')
写入每个 ! 字符! in therest = [] 在单独的行中:
'
P
a
g
e
:
2
'
因此,我正在寻找一种更好的分割段落的方法3 ...或者解决方案可能在其他地方?我正在寻找的最终结果/输出是:
Page: 2
Bib: Something
Derived: This n that
Page: 3
Bib: Something
.
.
.
【问题讨论】:
-
您能否更好地描述所需的输出?我的印象是你的输入已经是你想要的输出了
-
嵌套列表深度是固定的还是任意的?
-
@Pynchia:它是 - 我只是想将两组项目分开,因为我稍后将它们分别写入文件。
-
@Lav: Fixed - 也就是说,paragraphs3 始终是一个列表列表,从不包含任何子列表。