gpt4 book ai didi

python - 学习 Python 拆分和合并?

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

我以为我理解 python 中的拆分和连接,但它不适合我。

假设 inp[17] = 'Potters Portland Oregon school of magic' 的值

# a string of data I am pulling from a csv file, the data comes through just fine.
loc = inp[17]

l = loc.split(' ') # I want to split by the space

# I want to filter out all these words say they don't always
# come as "School of magic" so I cant just filter that out they
# could be mixed around at times.

locfilter = ['Potters', 'School', 'of', 'magic']
locname = ' '.join([value for value in l if l not in locfilter])

此时我的 locname 变量应该只有 Portland Oregon 在里面,但它仍然有 'Potters Portland Oregon school of magic'它没有过滤掉。

我做错了什么我认为问题出在我的 locname = 行。

感谢您的帮助。

最佳答案

这里的问题不是你的 splitjoin,它只是你的列表理解条件中的一个愚蠢的错误(我们所有人都会犯的那种愚蠢的错误一直):

locname = ' '.join([value for value in l if l not in locfilter])

显然 l 永远不会在 locfilter 中。如果你解决了这个问题:

locname = ' '.join([value for value in l if value not in locfilter])

它工作正常:

'Portland Oregon school'

请注意,'school' 仍然是输出的一部分。那是因为 'school' 不在 locfilter 中; '学校' 是。如果你想不区分大小写地匹配这些:

lowerfilter = [value.lower() for value in locfilter]
locname = ' '.join([value for value in l if value.lower() not in lowerfilter])

现在:

'Portland Oregon'

关于python - 学习 Python 拆分和合并?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14574498/

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