Как удалить пустые строки из вложенного списка?

#python #list #dictionary

Вопрос:

Я вызываю данные из Google Листов, я получаю ответ в виде словаря с вложенным словарем, так как у меня две строки объединены, ответ с сервера возвращает пустые строки, как я могу получить отредактированный ответ и записать его в новый список?

 {'majorDimension': 'COLUMNS',
 'range': "'Sheet1'!A3:A964",
 'values': [['Sticker | Fnatic | 2020 RMR',
             '',
             'Sticker | Fnatic (Holo) | 2020 RMR',
             '',
             'Sticker | FaZe | 2020 RMR',
             '',
             'Sticker | FaZe (Holo) | 2020 RMR',
             '',
             'Sticker | TYLOO | 2020 RMR',
             '',
             'Sticker | TYLOO (Holo) | 2020 RMR',
             '',
             'Sticker | G2 | 2020 RMR',
             '',
             'Sticker | G2 (Holo) | 2020 RMR',
             '',
             'Sticker | Ninjas in Pyjamas | 2020 RMR',
             '',
             'Sticker | Ninjas in Pyjamas (Holo) | 2020 RMR',
             '',
             'Sticker | Astralis | 2020 RMR',
             '',
             'Sticker | Astralis (Holo) | 2020 RMR',
             '',
             'Sticker | Natus Vincere | 2020 RMR',
             '',
             'Sticker | Natus Vincere (Holo) | Katowice 2015']]}
 

Мне нужно:

 new_list =
['Sticker | Fnatic | 2020 RMR',
 'Sticker | Fnatic (Holo) | 2020 RMR',
 'Sticker | FaZe | 2020 RMR',
 'Sticker | FaZe (Holo) | 2020 RMR',
 'Sticker | TYLOO | 2020 RMR',
 'Sticker | TYLOO (Holo) | 2020 RMR',
 'Sticker | G2 | 2020 RMR',
 'Sticker | G2 (Holo) | 2020 RMR',
 'Sticker | Ninjas in Pyjamas | 2020 RMR',
 'Sticker | Ninjas in Pyjamas (Holo) | 2020 RMR',
 'Sticker | Astralis | 2020 RMR',
 'Sticker | Astralis (Holo) | 2020 RMR',
 'Sticker | Natus Vincere | 2020 RMR',
 'Sticker | Natus Vincere (Holo) | Katowice 2015']
 

Ответ №1:

Вы можете отфильтровать его с помощью filter()

 new_list = list(filter(None, c['values'][0]))
 

Ответ №2:

Простое понимание списка с помощью checker выполнит эту работу (при условии, что данные-это имя переменной, в которой хранится ответ).:

 new_ls = [each for each in data['values'][0] if each != '']
 

new_ls будет выглядеть так:

 ['Sticker | Fnatic | 2020 RMR', 'Sticker | Fnatic (Holo) | 2020 RMR', 'Sticker | FaZe | 2020 RMR', 'Sticker | FaZe (Holo) | 2020 RMR', 'Sticker | TYLOO | 2020 RMR', 'Sticker | TYLOO (Holo) | 2020 RMR', 'Sticker | G2 | 2020 RMR', 'Sticker | G2 (Holo) | 2020 RMR', 'Sticker | Ninjas in Pyjamas | 2020 RMR', 'Sticker | Ninjas in Pyjamas (Holo) | 2020 RMR', 'Sticker | Astralis | 2020 RMR', 'Sticker | Astralis (Holo) | 2020 RMR', 'Sticker | Natus Vincere | 2020 RMR', 'Sticker | Natus Vincere (Holo) | Katowice 2015']