gpt4 book ai didi

Python:只想拆分列表中项目的最后一个括号

转载 作者:太空宇宙 更新时间:2023-11-04 00:41:35 24 4
gpt4 key购买 nike

我在列表中有 20000 个项目,并且想要一种可靠且快速的方法来仅拆分列表中的最后一个括号 ()。有些项目有两个括号,我希望第一个括号保持不变。这是我当前的代码。

output = ['ADLN (ADLN.SI)',
'CN ACCESS INDEX (TR) (SGXCN2.SI)',
'CN ACCESS STB (10%) INDEX (SGXCN7.SI)',
'CN ACCESS STB (5%) INDEX (SGXCN6.SI)',
'FNGUIDE CN ACC (1X) TR IDX (SGXCN15.SI)',
'FNGUIDE CN ACC INV 1X TR KRW IDX (SGXCN13.SI)',
'FNGUIDE CN ACC LEV 2X TR IDX (SGXCN14.SI)',
'FTSE ST All-Share Index (FSTAS.SI)',
'FTSE ST Basic Materials Index (FSTAS1000.SI)',
'FTSE ST Catalist Index (FSTICA.SI)']
mylist =[]
for x in range len(output):
a = ouput[x].split(')')
b = a[0].split('('))
mylist.append(b[0])
mylist.append(b[1])

只有一个括号我才能拆分。如果两个括号,它将不起作用。我想要的输出如下:

'ADLN' ,'ADLN.SI',
'CN ACCESS INDEX (TR)', 'SGXCN2.SI',
'CN ACCESS STB (10%) INDEX ','SGXCN7.SI',
'CN ACCESS STB (5%) INDEX ','SGXCN6.SI',
'FNGUIDE CN ACC (1X) TR IDX ','SGXCN15.SI',
'FNGUIDE CN ACC INV 1X TR KRW IDX','SGXCN13.SI',
'FNGUIDE CN ACC LEV 2X TR IDX','SGXCN14.SI',
'FTSE ST All-Share Index','FSTAS.SI',
'FTSE ST Basic Materials Index','FSTAS1000.SI',
'FTSE ST Catalist Index',FSTICA.SI'

使用循环需要一些时间,有没有更好的方法?

最佳答案

可以使用 str.rpartition 来完成。它分为 3 项列表:左、分隔符和右。并从右开始,因此考虑了最后一个左括号。将左和右(减去最后一个括号)附加到您的列表。

mylist=[]
for i in output:
parts = i.rpartition("(")
mylist.append(parts[0])
mylist.append(parts[2][:-1])

print(mylist)

结果:

['ADLN ', 'ADLN.SI', 'CN ACCESS INDEX (TR) ', 'SGXCN2.SI', 'CN ACCESS STB (10%) INDEX ', 'SGXCN7.SI', 'CN ACCESS STB (5%) INDEX ', 'SGXCN6.SI', 'FNGUIDE CN ACC (1X) TR IDX ', 'SGXCN15.SI', 'FNGUIDE CN ACC INV 1X TR KRW IDX ', 'SGXCN13.SI', 'FNGUIDE CN ACC LEV 2X TR IDX ', 'SGXCN14.SI', 'FTSE ST All-Share Index ', 'FSTAS.SI', 'FTSE ST Basic Materials Index ', 'FSTAS1000.SI', 'FTSE ST Catalist Index ', 'FSTICA.SI']

使用 itertools.chain.from_iterable

在列表理解中做这件事听起来有点困难但可行
import itertools

mylist=list(itertools.chain.from_iterable((i.rpartition("(")[0],i.rpartition("(")[2][:-1]) for i in output))

关于Python:只想拆分列表中项目的最后一个括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41721399/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com