new_be
new_be

Reputation: 37

how can i split string with no blank?

input = '1+2++3+++4++5+6+7++8+9++10'
string = input.split('+')
print(string)

when we run this code the output is ['1', '2', '', '3', '', '', '4', '', '5', '6', '7', '', '8', '9', '', '10']

But i want to split the string with no blank like ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']

Is there any function or method to remove blanks without using for loop like

for i in string:
if i == '':
    string.remove(i)

Upvotes: 0

Views: 223

Answers (2)

Kaustubh J
Kaustubh J

Reputation: 792

Simplest way:

customStr="1+2++3+++4++5+6+7++8+9++10"

list( filter( lambda x : x!="" ,customStr.split("+") ) )

Upvotes: 2

PacketLoss
PacketLoss

Reputation: 5746

Generate a list based on the output of split, and only include the elements which are not None

You can achieve this in multiple ways. The cleanest way here would be to use regex.

Regex:

import re
re.split('\++', inp)
#['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']

List Comprehension:

inp = '1+2++3+++4++5+6+7++8+9++10'
[s for s in inp.split('+') if s]
#['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']

Loop & Append:

result = []
for s in inp.split('+'):
    if s:
        result.append(s)

result
#['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']

Upvotes: 3

Related Questions