首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将“段落”转换为列表

如何将“段落”转换为列表
EN

Stack Overflow用户
提问于 2020-10-26 13:06:57
回答 4查看 107关注 0票数 1

我提前道歉,因为我不知道如何正确地问这个问题。每周,我都会收到最新的股票收益报告。它们看起来是这样的

代码语言:javascript
复制
Alexandria Real Estate Equities, Inc. (ARE), Beyond Meat, Inc. (BYND), Brown & Brown, Inc. (BRO), Canon Inc. (CAJ), 
Chegg, Inc. (CHGG), Cincinnati Financial Co. (CINF), Ecopetrol SA (EC), Hasbro, Inc. (HAS), 
HCA Healthcare, Inc. (HCA), HSBC Holdings plc (HSBC), NXP Semiconductors (NXPI), Otis Worldwide (OTIS), 
Packaging Co. of America (PKG), Petróleo Brasileiro S.A. - Petrobras (PBR), Principal Financial Group Inc (PFG), 
Principal Financial Group, Inc. (PFG), SAP SE (SAP), Twilio Inc (TWLO)

由于这封邮件是通过电子邮件发送的,所以我想找到一种方法,将它存储在一个看起来很吸引人的.txt中。如果可能的话,我想让它看起来像

代码语言:javascript
复制
[1] Alexandria real estate equities, inc. (ARE)
[2] Beyond meat, inc. (BYND)
[3] Brown & brown, inc. (BRO)
[4] Canon inc. (CAJ)
[5] Chegg, inc. (CHGG)
[6] Cincinnati financial co. (CINF)
[7] Ecopetrol sa  (EC)
[8] Hasbro, inc. (HAS)

诸若此类。尽管我不断地思考并列出了不同的选择,但我仍然被困住了,不知道如何接近它。任何帮助都将不胜感激。

EN

回答 4

Stack Overflow用户

发布于 2020-10-26 13:16:29

我会这样说..

代码语言:javascript
复制
import re

stocks = re.split(r'(?<=\)),\s', stocks_string.replace('\n','')
for index, stock in enumerate(stocks):
    print(f'[{index+1}] {stock}'

我使用正则表达式split来保留股票名称末尾的结束括号。(?<=)被称为“向后看”,仅当右括号在其前面时,整体正则表达式才会与coma匹配。

票数 2
EN

Stack Overflow用户

发布于 2020-10-26 13:22:48

我们可以看到,每个股票都是用,分隔的。但由于",Inc.“也使用相同的,字符,因此我们需要用),分隔股票名称。

让我们使用Python内置的split()函数拆分文本。我们从文本中获得一个字符串列表。如下所示:

代码语言:javascript
复制
text = "Alexandria Real Estate Equities, Inc. (ARE), Beyond Meat, Inc. (BYND), Brown & Brown, Inc. (BRO), Canon Inc. (CAJ), Chegg, Inc. (CHGG), Cincinnati Financial Co. (CINF), Ecopetrol SA (EC), Hasbro, Inc. (HAS), HCA Healthcare, Inc. (HCA), HSBC Holdings plc (HSBC), NXP Semiconductors (NXPI), Otis Worldwide (OTIS), Packaging Co. of America (PKG), Petróleo Brasileiro S.A. - Petrobras (PBR), Principal Financial Group Inc (PFG), Principal Financial Group, Inc. (PFG), SAP SE (SAP), Twilio Inc (TWLO)"

split_text = text.split("), ")

输出:

代码语言:javascript
复制
['Alexandria Real Estate Equities, Inc. (ARE', 'Beyond Meat, Inc. (BYND', 'Brown & Brown, Inc. (BRO', 'Canon Inc. (CAJ', 'Chegg, Inc. (CHGG', 'Cincinnati Financial Co. (CINF', 'Ecopetrol SA (EC', 'Hasbro, Inc. (HAS', 'HCA Healthcare, Inc. (HCA', 'HSBC Holdings plc (HSBC', 'NXP Semiconductors (NXPI', 'Otis Worldwide (OTIS', 'Packaging Co. of America (PKG', 'Petróleo Brasileiro S.A. - Petrobras (PBR', 'Principal Financial Group Inc (PFG', 'Principal Financial Group, Inc. (PFG', 'SAP SE (SAP', 'Twilio Inc (TWLO)']

让我们将丢失的)字符追加到末尾。

要获取每只股票的指数,可以在循环中使用enumerate()函数。

最后的代码:

代码语言:javascript
复制
split_text = text.split("), ")
for idx, stock_name in enumerate(split_text):
    print(f"[{idx+1}] {stock_name})")

输出:

代码语言:javascript
复制
[1] Alexandria Real Estate Equities, Inc. (ARE)
[2] Beyond Meat, Inc. (BYND)
[3] Brown & Brown, Inc. (BRO)
[4] Canon Inc. (CAJ)
[5] Chegg, Inc. (CHGG)
[6] Cincinnati Financial Co. (CINF)
[7] Ecopetrol SA (EC)
[8] Hasbro, Inc. (HAS)
[9] HCA Healthcare, Inc. (HCA)
[10] HSBC Holdings plc (HSBC)
[11] NXP Semiconductors (NXPI)
[12] Otis Worldwide (OTIS)
[13] Packaging Co. of America (PKG)
[14] Petróleo Brasileiro S.A. - Petrobras (PBR)
[15] Principal Financial Group Inc (PFG)
[16] Principal Financial Group, Inc. (PFG)
[17] SAP SE (SAP)
[18] Twilio Inc (TWLO)
票数 2
EN

Stack Overflow用户

发布于 2020-10-26 13:10:44

如果文本文件总是这种格式:"Full name here (SHORT)“,那么我们可以使用简单的python拆分,因为我们知道每个术语之间总是有一个"),”。此拆分将返回一个包含您正在查找的所有值的数组。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64531784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档