2017-01-29 18 views
2

Привет Я пытаюсь удалить все те токены, которые содержатся в моем предопределенном списке (префиксы). Ниже мой код и не снимает токены.Удаляет токен, начинающийся с определенных символов

prefixes = ('#', '@') 
tokens = [u'order', u'online', u'today', u'ebay', u'store', u'#hamandcheesecroissant', u'#whoopwhoop', u'\u2026'] 

for token in tokens: 
    if token.startswith(prefixes): 
     tokens.remove(token) 

ответ

3

Это не работает, чтобы удалить элементы из списка, итерации по нему.

Вы можете использовать список понимание

tokens = [token for token in tokens if not token.startswith(prefixes)] 

Или создать еще один список, а затем добавить элементы, которые вы хотите сохранить в этот список вместо:

new_tokens = [] 

for token in tokens: 
    if not token.startswith(prefixes): 
     new_tokens.append(token) 
+1

Вы можете просто добавить это ваш предыдущий ответ вместо создания двух ответов. –

+0

Привет @Harald Я попробовал выше, добавляя список algo, но он дает ошибку AttributeError: объект 'unicode' не имеет атрибута 'append'. – shanky