列表中有许多重复元组

Arn*_*ung 0 python tuples list nltk

我在处理列表中的元组时遇到了麻烦.让我们假设我们有一个包含很多元组的列表.

simpleTag=[**('samsung', 'ADJ')**, ('user', 'NOUN'), ('huh', 'NOUN'), ('weird', 'NOUN'), (':', '.'), ('MDPai05', 'NOUN'), (':', '.'), ('Samsung', 'NOUN'), ('Electronics', 'NOUN'), ('to', 'PRT'), ('Build', 'NOUN'), ('$', '.'), ('3', 'NUM'), ('Billion', 'NUM'), ('Smartphone', 'NOUN'), ('Plant', 'NOUN'), ('in', 'ADP'), ('Vietnam', 'NOUN'), ('Why', 'NOUN'), ('not', 'ADV'), ('india', 'VERB'), ('?', '.'), ('market', 'NOUN'), ('here', 'ADV'), (':', '.'), (':', '.'), ('//t…I', 'ADJ'), ('have', 'VERB'), ('bricked', 'VERB'), ('an', 'DET'), ('android', 'ADJ'), ('samsung', 'NOUN'), ('galaxy', 'NOUN'), ('player', 'NOUN'), ('yp-g70', 'X'), ('international', 'ADJ'), ('version', 'NOUN'), (',', '.'), ('and', 'CONJ'), ('it', 'PRON'), ('is', 'VERB'), ("n't", 'ADV'), ('recognized', 'VERB'), ('by', 'ADP'), ('PC', 'NOUN'), ('an', 'DET'), ('...', '.'), (':', '.'), ('tomwicky', 'NOUN'), (':', '.'), (':', '.'), ('announces', 'NOUN'), ('partnership', 'NOUN'), ('with', 'ADP'), ('Samsung', 'NOUN'), ('for', 'ADP'), ('wallet', 'NOUN'), ('/', '.'), ('couponing', 'VERB'), ('oms14', 'NOUN'), (':', '.'), ('refrigerator', 'NOUN'), ('(', '.'), ('Spearfish', 'ADJ'), (')', 'NOUN'), ('$', '.'), ('175', 'NUM'), (':', '.'), ('refrigerator', 'NOUN'), ('samsung', 'NOUN'), ('airconditioning', 'VERB'), ('sd', 'NOUN'), ('forsale', 'NOUN'), (':', '.'), ('relaxedharry', 'NOUN'), (':', '.'), ('meanwhile', 'ADV'), ('louis', 'VERB'), ('is', 'VERB'), ('a', 'DET'), **('samsung', 'ADJ')**, ('user', 'NOUN'), ('huh', 'NOUN'), ('weird', 'NOUN'), (':', '.'), ('AmazingRoom', 'NOUN'), (':', '.'), ('if', 'ADP'), ('you', 'PRON'), ('want', 'VERB'), ('a', 'DET'), ('iPhone', 'NOUN'), ('5s', 'NUM'), ('!', '.'), ('*', 'X'), (':', '.'), ('to', 'PRT'), ('win', 'VERB'), ('a', 'DET'), ('Samsung', 'NOUN')]
Run Code Online (Sandbox Code Playgroud)

我想要做的是替换一些元组的值.例如在simpleTag中,有"samsung"有两个标签:'NOUN'和'ADJ'

我想做的是将'ADJ'替换为"NOUN"

我已经尝试了几个代码,但我不知道它为什么会让我"ADJ".以上示例仅仅是我的代码由nltk标记的样本.请让我知道你在想什么.

代码1:

[tupleset[:1] + ('NOUN',) for tupleset in simpleTag if word.startswith('samsung')]
Run Code Online (Sandbox Code Playgroud)

代码2:

for (word,tag) in simpleTag:
    if word.startswith('samsung'):
        tag = 'NOUN'
Run Code Online (Sandbox Code Playgroud)

CODE3:

for (word,tag) in simpleTag:
    if word.startswith('samsung'):
        (word, tag)=(word, 'NOUN')
Run Code Online (Sandbox Code Playgroud)

Dan*_* D. 5

这是对给定代码的简单修改:

for index, (word,tag) in enumerate(simpleTag):
    if word.startswith('samsung'):
        simpleTag[index] = (word, 'NOUN')
Run Code Online (Sandbox Code Playgroud)