Перейти к содержимому

Как удалить пустую строку в питоне

  • автор:

как удалить пустую строку из листа пайтон

Мистер @entithat, отмечу от себя, что в вашем варианте исходный список изменен не будет. Будет создан новый.

17 ноя 2021 в 13:30
@A_Vaclav, ну и хорошо, зачем терять данные, хоть и пустые
17 ноя 2021 в 13:32
@entithat Так же будут удалены все найденные элементы, а не один.
17 ноя 2021 в 14:12
@A_Vaclav, ну так, тут уже уточнять надо)
17 ноя 2021 в 14:58

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Как вариант, если нужно удалить сразу и пустые строки, и нули, и пустые коллекции, и значения False , в общем всё «пустое» одним махом:

lst = [12,3,1,'',99,7,120] print(list(filter(None, lst))) # [12, 3, 1, 99, 7, 120] 

Ну или ладно, пусть только пустые строки удалять нужно:

lst = [12,3,1,'',99,7,120] print(list(filter(''.__ne__, lst))) # [12, 3, 1, 99, 7, 120] 

Отслеживать
ответ дан 17 ноя 2021 в 14:34
69.4k 5 5 золотых знаков 20 20 серебряных знаков 51 51 бронзовый знак

list.remove(x) — Удаляет первый элемент в списке, имеющий значение x. ValueError, если такого элемента не существует. Справка.

def remove_in_list(arr, template): try: res = arr[::]# не будем мутировать входные данные res.remove(template) except ValueError: #pass print('Элемента нет в списке') res = arr return res # Проверим как работает arr = [12,3,1,'',99,7,120] arr = remove_in_list(arr, '') print(arr) arr = remove_in_list(arr, '') print(arr) 
[12, 3, 1, 99, 7, 120] Элемента нет в списке [12, 3, 1, 99, 7, 120] 

И вариант без try. except, для «начинающих»:

def remove_in_list_not_try(arr, template): if template in arr: res = arr[::]# не будем мутировать входные данные res.remove(template) else: #pass print('Элемента нет в списке') res = arr return res # Проверим как работает arr = [12,3,1,'',99,7,120] arr = remove_in_list_not_try(arr, '') print(arr) arr = remove_in_list_not_try(arr, '') print(arr) 

Как удалить пустую строку в Text Tkinter?

Здравствуйте, как удалить пустую строку в виджете Text Tkinter?

from tkinter import * root = Tk() data = Text(root, fg = "green") data.pack() root.mainloop()

Например если я зажму левую кнопку мыши в виджете Text и протащю с лева на право то произойдёт выделение «пустой» строки ? Вопрос как её удалить методом data.delete()?
Такие способы не помогают: data.delete(«1.0», END)
data.delete(1.0, «end-1c)

  • Вопрос задан более двух лет назад
  • 82 просмотра

1 комментарий

Средний 1 комментарий

Как удалить строки со значениями NaN в Pandas

Часто вас может заинтересовать удаление строк, содержащих значения NaN, в кадре данных pandas. К счастью, это легко сделать с помощью функции pandas dropna() .

В этом руководстве показано несколько примеров использования этой функции в следующих pandas DataFrame:

import numpy as np import scipy.stats as stats #create DataFrame with some NaN values df = pd.DataFrame() #view DataFrame df rating points assists rebounds 0 NaN NaN 5.0 11 1 85.0 25.0 7.0 8 2 NaN 14.0 7.0 10 3 88.0 16.0 NaN 6 4 94.0 27.0 5.0 6 5 90.0 20.0 7.0 9 6 76.0 12.0 6.0 6 7 75.0 15.0 9.0 10 8 87.0 14.0 9.0 10 9 86.0 19.0 5.0 7 

Пример 1. Удаление строк с любыми значениями NaN

Мы можем использовать следующий синтаксис, чтобы удалить все строки, которые имеют любые значения NaN:

df.dropna () rating points assists rebounds 1 85.0 25.0 7.0 8 4 94.0 27.0 5.0 6 5 90.0 20.0 7.0 9 6 76.0 12.0 6.0 6 7 75.0 15.0 9.0 10 8 87.0 14.0 9.0 10 9 86.0 19.0 5.0 7 

Пример 2. Удаление строк со всеми значениями NaN

Мы можем использовать следующий синтаксис, чтобы удалить все строки, содержащие все значения NaN в каждом столбце:

df.dropna (how='all') rating points assists rebounds 0 NaN NaN 5.0 11 1 85.0 25.0 7.0 8 2 NaN 14.0 7.0 10 3 88.0 16.0 NaN 6 4 94.0 27.0 5.0 6 5 90.0 20.0 7.0 9 6 76.0 12.0 6.0 6 7 75.0 15.0 9.0 10 8 87.0 14.0 9.0 10 9 86.0 19.0 5.0 7 

В этом конкретном DataFrame не было строк со всеми значениями NaN, поэтому ни одна из строк не была удалена.

Пример 3. Удаление строк ниже определенного порога

Мы можем использовать следующий синтаксис, чтобы удалить все строки, которые не имеют определенного, по крайней мере , определенного количества значений, отличных от NaN:

df.dropna (thresh= 3 ) rating points assists rebounds 1 85.0 25.0 7.0 8 2 NaN 14.0 7.0 10 3 88.0 16.0 NaN 6 4 94.0 27.0 5.0 6 5 90.0 20.0 7.0 9 6 76.0 12.0 6.0 6 7 75.0 15.0 9.0 10 8 87.0 14.0 9.0 10 9 86.0 19.0 5.0 7 

В самой первой строке исходного DataFrame не было по крайней мере 3 значений, отличных от NaN, так что это была единственная строка, которая была удалена.

Пример 4. Удаление строки со значениями Nan в определенном столбце

Мы можем использовать следующий синтаксис, чтобы удалить все строки, которые имеют значение NaN в определенном столбце:

df.dropna (subset=['assists']) rating points assists rebounds 0 NaN NaN 5.0 11 1 85.0 25.0 7.0 8 2 NaN 14.0 7.0 10 4 94.0 27.0 5.0 6 5 90.0 20.0 7.0 9 6 76.0 12.0 6.0 6 7 75.0 15.0 9.0 10 8 87.0 14.0 9.0 10 9 86.0 19.0 5.0 7 

Пример 5: сброс индекса после удаления строк с NaN

Мы можем использовать следующий синтаксис для сброса индекса DataFrame после удаления строк со значениями NaN:

#drop all rows that have any NaN values df = df.dropna () #reset index of DataFrame df = df.reset_index(drop=True) #view DataFrame df rating points assists rebounds 0 85.0 25.0 7.0 8 1 94.0 27.0 5.0 6 2 90.0 20.0 7.0 9 3 76.0 12.0 6.0 6 4 75.0 15.0 9.0 10 5 87.0 14.0 9.0 10 6 86.0 19.0 5.0 77 

Вы можете найти полную документацию по функции dropna() здесь .

5 простых способов удалить символ из строки

Существует несколько методов, позволяющих удалить определенный символ из строки:

  • Примитивный метод.
  • Функция replace().
  • Срезы и конкатенация.
  • Метод join() и генератор списков.
  • Метод translate()

Важная деталь — строки в Python неизменяемы. Исходная строка останется нетронутой, а новую вернут методы, о которых написано выше.

Задачи по строкам и решения к ним у нас в телеграм канале PythonTurbo

1. Примитивный метод удаления символа из строки

Суть этого метода проста. Мы пишем цикл и создаем новую пустую строку. Цикл работает так: все символы кроме элемента с индексом n помещаются в новую строку. ( n — индекс элемента, который нам нужно удалить)

input_str = "pythonist" # Выводим в консоль исходную строку print ("Исходная строка: " + input_str) result_str = "" for i in range(0, len(input_str)): if i != 3: result_str = result_str + input_str[i] # Выводим в консоль строку после удаления i-го элемента print ("Строка после удаления i-го элемента: " + result_str)
Исходная строка: pythonist Строка после удаления i-го элемента: pytonist

2. Удаление элемента из строки с помощью метода replace()

str = "pythonist" print ("Исходная строка: " + str) res_str = str.replace('t', '') # Удаление всех 't' print("Строка после удаления всех символов t: " + res_str) # Удаление только первой t res_str = str.replace('t', '', 1) print ("Строка после удаления первого t: " + res_str)
Исходная строка: pythonist Строка после удаления всех символов t: pyhonis Строка после удаления первого t: pyhonist

Мини-задачка для вашей тренировки метода replace()

«Напишите программу на Python для получения строки из заданной строки, в которой все вхождения первого символа заменены на ‘$’, кроме самого первого символа.»

Пример: print(change_char(‘restart’))
»»» resta$t

Решение задачки можно глянуть у нас в канале

3. Удаление символа с помощью срезов и конкатенации

str = "pythonist" print ("Исходная строка: " + str) # Удаляем элемент с индексом 3 # с помощью срезов и объединения res_str = str[:3] + str[4:] print ("Строка после удаления символа: " + res_str
Исходная строка: pythonist Строка после удаления символа: pytonist

4. Удаление символа с помощью метода join() и генераторов списков

Суть этого метода в том, чтобы конвертировать строку в эквивалентный список. После этого все элементы кроме того, который мы собираемся удалить, объединяются в строку.

str = "pythonist" print("Исходная строка: " + str) # Удаление элемента с индексом 2 # с помощью join() и генератора списков res_str = ''.join([str[i] for i in range(len(str)) if i != 2]) print("Строка после удаления символа: " + res_str)
Исходная строка: pythonist Строка после удаления символа: pyhonist

5. Удаление символа из строки с помощью метода translate()

str = 'pythonist123pythonist' print(str.translate())

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *