如何将列表拆分为元素中特定字符的列表列表?

发布于 2024-11-28 02:15:37 字数 632 浏览 1 评论 0原文

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

有没有一种简单的方法可以分割这样的列表:

['(617) 965-2555
\n组织名称', '街道名称', '城市', '邮政编码', '(413 ) 333-2251
\n组织名称 2', '地址', '城市', '邮政编码2', '(617) 568-7777

\n\n']

到“\n”处的列表列表中?

因此,理想情况下,结果应如下所示:

[ ['Previous info', '(617) 965-2555
'] ['组织名称', '街道名称', '城市', '邮政编码', '(413) 333-2251
'] ['组织名称 2'、'地址'、'城市'、'邮政编码 2'、'(617) 568-7777

'] ]

建议使用另一种方法将该列表放入 HTML.py 有组织的表格中也会有所帮助。

I'm relatively new to programming and trying get a (very) long list of information into a table using Python. I installed HTML.py from Decalage and now need to get my list turned into into a list of lists that HTML.py can parse.

Is there an easy way to split a list like this:

['(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']

into a list of lists at "\n"?

So ideally the result would look like something like this:

[ ['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>']
]

Suggestions for an alternate method of getting that list into an organized table a la HTML.py would also be helpful.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

苹果你个爱泡泡 2024-12-05 02:15:37
>>> 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)
>>> 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>', '', '']]

If you want it flattened:

>>> 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>', '', '']

Edit:

Thanks to @agf's comment, now I got it i think:

>>> 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>'], [''], ['']]

Assuming "{}" is never used on your original list, else change it to something not in your list, |, ;:; etc.

And you can easily filter the output for removing list contains just empty strings with:

filter("".join, result)
有深☉意 2024-12-05 02:15:37

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

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

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

You can certainly convert your list easily on \n:

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

But your results list isn't close enough to your source list for me to understand... where did "Previous info" come from?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文