在Python中用Sqlite3过滤掉字符串中的单词

时间:2017-12-27 15:06:10

标签: python replace sqlite

在我运行特定查询后,我获得了一个字符串,该字符串与存储在列表中的“GS Gbl Sov Bd Ptf Base Cap”等投资基金的名称相匹配。

我想做的是过滤出查询中的特定单词,如'Cap'和'Ptf',以获得“基本”基金名称,例如'GS Gbl Sov Bd Base'。

当我尝试使用替换方法时,它给出了错误:'list'对象没有属性'replace',或者如果我尝试将其转换为字符串,则它将无法识别某些列入黑名单的单词。

有更智能的方法来实现这一目标吗?谢谢

2 个答案:

答案 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]))