У меня есть следующий список кортежей:Как изменить некоторые значения списка кортежей?
lis = [('The', 'DET'),
('iphone', 'X'),
('is', 'VERB'),
('a', 'DET'),
('very', 'ADV'),
('nice', 'ADJ'),
('device', 'NOUN'),
('.', 'PUNCT'),
('However', 'ADP'),
('the', 'DET'),
('pixel', 'X'),
('is', 'VERB'),
('by', 'ADP'),
('far', 'ADV'),
('more', 'ADV'),
('interesting', 'ADJ'),
('since', 'ADV'),
('it', 'PRON'),
('was', 'AUX'),
('made', 'VERB'),
('by', 'ADP'),
('google', 'NOUN'),
('.', 'PUNCT')]
Моя главная цель заключается в конкретно изменения значения этого кортежей: ('iphone', 'X'), ('pixel', 'X'), ('google', 'NOUN')
к ('iphone', 'device'), ('pixel', 'device'), ('google', 'entity')
. Таким образом, так как я заинтересован в сохранении порядка, я попытался следующие:
tags['Google'] = 'device'
tags['pixel'] = 'device'
tags['iphone'] = 'entity'
#this one is not present in lis . Nevertheless, I would like to add it just in case I need it.
tags['galaxy'] = 'device'
tags = list(tags.items())
tags = OrderedDict(postag(str(sample)))
Поскольку я добавил tags['galaxy'] = 'device'
это на самом деле добавить его в конец списка, как ('galaxy', 'device')
. Поэтому, мой вопрос заключается в том, как я могу исправить и обновить значения для кортежей, если они существуют ?.
Нужен ли используйте список кортежей? Кортежи неизменны, поэтому по дизайну я бы не использовал их, если бы знал, что они могут/будут изменены. Например, возможно, вы можете использовать словарь для хранения сопоставлений и, возможно, отдельный список, чтобы сохранить порядок ключей? – MxyL
@MxyL К сожалению, да, кортежи необходимы ... Я также выясню, какова ваша идея. –