Удалить имя пользователя из списка списков - PullRequest
1 голос
/ 06 марта 2019

У меня есть список списков твитов, и мне нужно удалить имя пользователя.

[['@Hegelbon','That','heart','sliding','into','the','waste','basket','.',':('],['“','@ketchBurning',':','I','hate','Japanese','call','him','"','bani','"',
':(',':(','”','Me','too'], ... ]

Основная проблема в том, что я не знаю, как работать со списком списков. Я пробовал следующий код среди прочего, но не работал:

import re

    for element in tweets:
        for word in element:
            re.sub('@[^\s]+','', tweets)

Пожалуйста, помогите.

Ответы [ 2 ]

2 голосов
/ 06 марта 2019

Вы можете использовать понимание вложенного списка для фильтрации строк, начинающихся с @ (при условии, что ваш список списков хранится как переменная l):

[[i for i in s if not i.startswith('@')] for s in l]

Возвращает:

[['That', 'heart', 'sliding', 'into', 'the', 'waste', 'basket', '.', ':('], ['“', ':', 'I', 'hate', 'Japanese', 'call', 'him', '"', 'bani', '"', ':(', ':(', '”', 'Me', 'too']]
1 голос
/ 06 марта 2019

Использовать итерации списка:

mylist = [['@Hegelbon','That','heart','sliding','into','the','waste','basket','.',':('],['“','@ketchBurning',':','I','hate','Japanese','call','him','"','bani','"',
':(',':(','”','Me','too'] ]



newlist = [ [item for item in sublist if not item.startswith('@')] for sublist in mylist]
...