[英]How to change value of dictionary in python?
我发现在字典中找到一些单词并将其替换为另一个单词。 写了下面的代码,但是output没有变化,不知道output怎么改?
for elem in output:
for el in elem ['tags']:
if el== 'datamining':
el='data mining'
elif el== 'data science':
el='data mining'
print(output)
新词
d = {
'datamining': 'data mining',
'data science': 'data mining',
}
字典
[{'title': 'title1',
'tags': ['datamining', 'data science',
'test',
'data mining',
'test1']},
{'title': 'title2',
'tags': ['title2',
'datamining']
}
]
预期字典
[{'title': 'title1',
'tags': ['data mining', 'data mining',
'test',
'data mining',
'test1']},
{'title': 'title2',
'tags': ['title2',
'data mining']
}
]
这应该可以解决问题
for i, elem in enumerate(output):
for j, el in enumerate(elem ['tags']):
if 'datamining' in el:
output[i]['tags'][j]='data mining'
elif 'data science' in el:
output[i]['tags'][j]='data mining'
要消除 \u20:
for i, elem in enumerate(output):
for j, el in enumerate(elem ['tags']):
output[i]['tags'][j] = output[i]['tags'][j].replace("\\u20", "")
output[i]['tags'][j] = output[i]['tags'][j].replace('datamining', 'data mining')
output[i]['tags'][j] = output[i]['tags'][j].replace('data science', 'data mining')
for elem in output:
for idx, el in enumerate(elem['tags'][:]):
if el == 'datamining':
elem['tags'][idx] = 'data mining'
elif el == 'data science':
elem['tags'][idx] = 'data mining'
由于您无法更改正在迭代的 object,因此我们使用切片语法[:]
进行浅拷贝
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.