Проверьте длину списка, полученную в результате разбиения строки, например:
my_list = ['how is it going today?','good','the','It is nice weather outside',' word']
my_list = [x for x in my_list if len(x.strip().split()) > 1]
print(my_list)
# ['how is it going today?', 'It is nice weather outside']
strip()
удаляет конечные пробелы, а split()
делит строку на разделенные пробелами подстроки. Это не очень эффективно, поскольку создает временную list
, чего можно избежать в ряде распространенных сценариев.
Если вы можете предположить, что разделители отсутствуют в начале и /или конец строки, более эффективный подход (который будет работать для разделителей с несколькими символами) был бы:
separators = ' ', '\t', '\n' # etc.
my_list = ['how is it going today?','good','the','It is nice weather outside',' word']
my_list = [
x for x in my_list
if any(separator in x for separator in separators)]
print(my_list)
# ['how is it going today?', 'It is nice weather outside', ' word']
Если вы можете предположить, что разделители - это одиночные символы, эффективный подход, которыйустойчив к трейлингу separators
будет:
separators = ' \t\n' # etc.
my_list = ['how is it going today?','good','the','It is nice weather outside',' word']
my_list = [
x for x in my_list
if any(separator in x.strip(separators) for separator in separators)]
print(my_list)
# ['how is it going today?', 'It is nice weather outside']