在我运行特定查询后,我获得了一个字符串,该字符串与存储在列表中的“GS Gbl Sov Bd Ptf Base Cap”等投资基金的名称相匹配。
我想做的是过滤出查询中的特定单词,如'Cap'和'Ptf',以获得“基本”基金名称,例如'GS Gbl Sov Bd Base'。
当我尝试使用替换方法时,它给出了错误:'list'对象没有属性'replace',或者如果我尝试将其转换为字符串,则它将无法识别某些列入黑名单的单词。
有更智能的方法来实现这一目标吗?谢谢
答案 0 :(得分:0)
您只需将列表转换为一个集合,然后删除包含您要过滤的字词的另一个集合。
data = ["GS", "Gbl", "Sov", "Bd", "Ptf", "Base","Cap"]
data = set(data)
filter_words = set(["Cap","Whatever"])
filtered_data = data - filter_words
答案 1 :(得分:0)
您应该添加有关问题的更多详细信息并发布代码尝试:
从这个例子中你可以看一下提示:
如果您从每个查询中获得一个列表并且它有一个项目,那么:
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<DirectoryRef Id="INSTALLFOLDER" />
</Fragment>
<Fragment>
<ComponentGroup Id="ProductComponents">
<Component Id="cmp2C5CB3BF0E009CA9CF5E03CADA38250D" Directory="INSTALLFOLDER" Guid="{C694E446-7B01-42C0-9056-4E09834809E9}">
<File Id="fil3A244EF6571347120C494BB170DC368E" KeyPath="yes" Source="$(var.SetupProject1.TargetDir)\cab1.cab" />
</Component>
<Component Id="cmpB6E89A2030E867C94B57A39FE26E1181" Directory="INSTALLFOLDER" Guid="{E8E1247F-627F-420D-97E0-0ABE39A2064C}">
<File Id="fil41A028F0E06C7EEE038806BDA5979087" KeyPath="yes" Source="$(var.SetupProject1.TargetDir)\SetupProject1.msi" />
</Component>
<Component Id="cmpD2FFED031AA728C90BED6090228F3AE3" Directory="INSTALLFOLDER" Guid="{660414BB-E061-4EE2-A7E2-471EA41C031F}">
<File Id="fil3F7C931DA08579E26A8F50778E59444A" KeyPath="yes" Source="$(var.SetupProject1.TargetDir)\SetupProject1.wixpdb" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>
输出:
your_list=['GS Gbl Sov Bd Ptf Base Cap']
stop_words=['Cap','Ptf' ]
final_list=[]
for i in your_list[0].split():
if i not in stop_words:
final_list.append(i)
print(" ".join(final_list))
你也可以在一行中完成:
GS Gbl Sov Bd Base
输出:
print(" ".join([i for i in your_list[0].split() if i not in stop_words]))