我正在检查字典中的键,如果它包含space
,请删除它。你知道吗
def query_combination(sentence,mydict):
for key in mydict.keys():
if key == 'key':
pass
else:
print 'key is : ',key
if " " in key:
temp = key
key = key.replace(' ',"")
print 'new key : ',key
sentence = sentence.replace(temp ,key)
print 'new sentence : ',sentence
print mydict
mydict = {'films': {'match': ['Space', 'Movie', 'six', 'two', 'one']}, u'Popeye Doyle': {'score': 100, 'match': [u'People', 'heaven', 'released']}}
sentence ='What films featured the character Popeye Doyle'
combination = query_combination(sentence,mydict)
我无法动态地将新键值更改为mydict
。有什么好的建议吗
如果从字典中获取一个字符串,然后对其进行更改并生成一个新字符串,则字典将不知道该字符串;您可以向字典中添加新条目并删除旧条目:
key = key.replace(' ',"")
不影响字典中的实际键,它正在更改该键的一个副本。您需要使用新键将值添加到字典中,然后删除旧键。有一种方法:但是,请注意,您正在替换字符串
sentence
中的键,但是sentence
对于函数query_combination()
是本地的,因此外部作用域sentence
不受替换的影响。我不确定您是否希望您的代码会这样做,但如果是这样,您可以简单地从函数返回修改后的sentence
,或者将其作为一个项包含在字典中。你知道吗考虑到
sentence
实际上并没有被函数更新,您可以将整个函数简化为字典理解:你可以试试这个
另一个解决办法是
相关问题 更多 >
编程相关推荐