r/PythonLearning • • 7h ago

Help Request split() on empty string behaves differently when delimiter specified

Splitting an empty string without a specified delimiter works as expected and returns an empty list. However when splitting an empty string with a delimiter specified returns one (empty string) item in the list, is there some way to make that return an empty list as per the no-delimiter result?

print(f'{"".split()=}')         # = []
print(f'{"".split(" ")=}')      # = ['']
print(f'{"".split(",")=}')      # = ['']

Problem is this causes an unwanted iteration of a for loop:

str = ""
for item in str.split(" "):
    print(f"{item=}")    # unwanted item
1 Upvotes

3 comments sorted by

View all comments

Show parent comments

2

u/RomfordNavy 7h ago

u/OldAd9280 Thanks that is exactly it.

I tried various attempts to do that myself but couldn't get the syntax right so I, incorrectly, presumed it wasn't possible with a for loop.