Python:替换项目

时间:2018-04-21 01:53:15

标签: python string replace nltk

我有以下内容:

[('The', 'NNP'), ('map', 'NNP'), ('is', 'VBZ'), 
('way', 'NN'), ('of', 'IN'), ('using', 'VBG'), ('tool', 'NN'), 
(',', ','), ('skill', 'VBG'), ('and', 'CC')]

并且,每次与'NN'配对时,我需要用'NN'替换字符串。所以输出应该是:

[('The', 'NNP'), ('map', 'NNP'), ('is', 'VBZ'), 
('NN', 'NN'), ('of', 'IN'), ('using', 'VBG'), ('NN', 'NN'), 
(',', ','), ('skill', 'VBG'), ('and', 'CC')]

我尝试了以下操作,但它不会替换该项目。请帮忙!

for s in sentence:
    if s[1] == 'NN':
        s[0] == 'NN'
print(sentence)

1 个答案:

答案 0 :(得分:2)

无法分配元组 - 它们是不可变的。一种选择是从头开始重建POS标签列表。

pos_tags = [(x if y != 'NN' else y, y) for x, y in pos_tags] 

如果不是这样,那么,重新分配您的列表项。

for i, (x, y) in enumerate(pos_tags):
    if y == 'NN':
        pos_tags[i] = ('NN', 'NN')

print(pos_tags)

[('A', 'NNP'),
 ('Discourse', 'NNP'),
 ('is', 'VBZ'),
 ('NN', 'NN'),
 ('of', 'IN'),
 ('using', 'VBG'),
 ('NN', 'NN'),
 (',', ','),
 ('thinking', 'VBG'),
 ('and', 'CC'),
 ('acting', 'VBG')]