Удалить имя пользователя из списка списков

#python #list #text-mining

#python #Список #интеллектуальный анализ текста

Вопрос:

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

 [['@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)
  

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

Комментарии:

1. Перестройте список с пониманием списка. tweets = [['@Hegelbon','That','heart','sliding','into','the','waste','basket','.',':('], ['“','@ketchBurning',':','I','hate','Japanese','call','him','"','bani','"', ':(',':(','”','Me','too']]; filtered = [item for item in tweets if item[0] != '@Hegelbon']

Ответ №1:

Вы можете использовать понимание вложенного списка для фильтрации строк, начинающихся с @ (при условии, что ваш список списков хранится как переменная 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. Большое спасибо за вашу помощь!

Ответ №2:

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

 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]