繁体   English   中英

如何更改 python 中字典的值?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM