У меня есть список списков со строками и пустыми строками. Моя цель - сохранить ту же структуру и данные (список списков), но удалить пустые строки. my_list = [["Том", "Мальчик и ...
3 ответа
Вы можете использовать вложенный анализ списка с условной проверкой пустой строки как:
my_list = [["Tom", "Boy", ""],["Ben", "Ten", ""]]
new_list = [[s for s in sub_list if s] for sub_list in my_list]
# where `new_list` will hold:
# [['Tom', 'Boy'], ['Ben', 'Ten']]
Однако, как вы упомянули, ваша пустая строка всегда является последним элементом во вложенном списке. Вы можете использовать команду del
, чтобы удалить последний элемент как:
my_list = [["Tom", "Boy", ""],["Ben", "Ten", ""]]
for sub_list in my_list:
del sub_list[-1]
# New value of `my_list` will be:
# [['Tom', 'Boy'], ['Ben', 'Ten']]
Или способ понимания списка пропустить последний элемент в подсписке:
new_list = [sub_list[:-1] for sub_list in my_list]
Вот как это выглядит с пониманием списка:
my_list = [["Tom", "Boy" ''],["Ben", "Ten", '']]
new_list = [[s for s in l if len(s)>0] for l in my_list]
print(new_list)
Вывод
[['Tom', 'Boy'], ['Ben', 'Ten']]
Это работает для меня
x = [["dhasdjs","dsd"],["","sdds"]]
for lists in x:
for item in lists:
if item == "":
lists.remove(item)
print(x)
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.