我正在尝试执行一个字典理解,它只对一个特定的内部子键应用一个函数。函数从字符串中删除非英语单词。我希望它只应用于字典中每个键的'title'
子键
# imports
import nltk
# function to remove non-English words
words = set(nltk.corpus.brown.words())
def strip_non_en(string, words):
" ".join(w for w in nltk.wordpunct_tokenize(string)\
if w.lower() in words or not w.isalpha())
return string
# dict example:
meta_data = {
'12345.xml': {'author': ['Presley'],
'date': 1956,
'doi': None,
'title': 'Heartbreak Hotel'},
'67890.xml': {'author': ['Iglesias'],
'date': 1972,
'doi': None,
'title': 'For a little bit of your love Por Un Poco De Tu Amor'}
}
我只能让它将函数应用于所有子键,这会删除'author'
子键的内容
感谢所有的帮助
这是构建逻辑的一种方法。与Ajax1234类似,但我向
strip_non_en
添加了一个额外的可选参数您可以检查当前键是否为
'title'
,如果是,则调用函数并将当前值传递给函数:另外,您可以稍微更改函数
strip_non_en
,以便参数words
是可选的。这样,就不必每次都传递words
:相关问题 更多 >
编程相关推荐