2

我对编程和尝试使用 Python 将(非常)长的信息列表放入表中比较陌生。我从 Decalage 安装了 HTML.py,现在需要将我的列表变成 HTML.py 可以解析的列表列表。

有没有一种简单的方法来拆分这样的列表:

['(617) 965-2555<br />\nOrganization Name', 'Street Name', 'City', 'Zip code', '(413) 333-2251<br />\nOrg Name 2', 'Address', 'City', 'Zip code 2', '(617) 568-7777</p>\n\n']

进入“\n”处的列表列表?

所以理想情况下,结果看起来像这样:

[ ['Previous info', '(617) 965-2555<br />'] ['Organization name', 'Street name', 'City', 'Zip Code', '(413) 333-2251<br />'] ['Org Name 2', 'Address', 'City', 'Zip Code 2', '(617) 568-7777</p>'] ]

有关将该列表放入有组织的表格(例如 HTML.py)的替代方法的建议也会有所帮助。

4

2 回答 2

3
>>> a
['(617) 965-2555<br />\nOrganization Name', 'Street Name', 'City', 'Zip code', '(413) 333-2251<br />\nOrg Name 2', 'Address', 'City', 'Zip code 2', '(617) 568-7777</p>\n\n']
>>> [i.split("\n") for i in a]
[['(617) 965-2555<br />', 'Organization Name'], ['Street Name'], ['City'], ['Zip code'], ['(413) 333-2251<br />', 'Org Name 2'], ['Address'], ['City'], ['Zip code 2'], ['(617) 568-7777</p>', '', '']]

如果你想让它变平:

>>> import itertools
>>> list(itertools.chain(*[i.split("\n") for i in a]))
['(617) 965-2555<br />', 'Organization Name', 'Street Name', 'City', 'Zip code', '(413) 333-2251<br />', 'Org Name 2', 'Address', 'City', 'Zip code 2', '(617) 568-7777</p>', '', '']

编辑:

感谢@agf 的评论,现在我明白了:

>>> a
['(617) 965-2555<br />\nOrganization Name', 'Street Name', 'City', 'Zip code', '(413) 333-2251<br />\nOrg Name 2', 'Address', 'City', 'Zip code 2', '(617) 568-7777</p>\n\n']
>>> [i.split("{}") for i in "{}".join(a).split("\n")]
[['(617) 965-2555<br />'], ['Organization Name', 'Street Name', 'City', 'Zip code', '(413) 333-2251<br />'], ['Org Name 2', 'Address', 'City', 'Zip code 2', '(617) 568-7777</p>'], [''], ['']]

假设“{}”从未在您的原始列表中使用,否则将其更改为不在您的列表中的内容|;:;等等。

您可以轻松过滤输出以删除列表,其中仅包含空字符串:

filter("".join, result)
于 2011-08-04T16:27:57.623 回答
0

您当然可以在 \n 上轻松转换您的列表:

newlist = [a.split('\n') for a in oldlist]

但是您的结果列表与您的源列表不够接近,我无法理解......“以前的信息”来自哪里?

于 2011-08-04T16:39:30.110 回答