I came across this snippet on Grepper:
line = "<html><head>" d = ">" s = [e+d for e in line.split(d) if e] print(s) #Output: #["<html>", "<head>"]
It works fine for the example given. But if I split a sentence, this snippet will add the delimiter twice:
line = "<html><head>" d = ">" s = [e+d for e in line.split(d) if e] print(s) #Output: #['There are two methods:', ' one is to try, the other is to not try.:']
so I worked on it and came up with this, which works:
d = "," splitSentences = sentence.split(d) counter = 0 maxLines = len(splitSentences) for splitSentence in splitSentences: if counter < maxLines - 1: paragraphList.append(splitSentence + d) else: paragraphList.append(splitSentence) counter = counter + 1
I’m wondering if there is a way to do this in more elegant way.
Advertisement
Answer
s = [e+d for e in line.split(d) if e] # If the delimiter is not the last character, then drop it from the last string. if line[-1] != d: s[-1] = s[-1][:-1]
IMO, This is more readable than any one-line solution.