Python | Splitting a list into an empty string

Method # 1: Using index () and slicing a list
Slicing a list can be used to get sublists from a custom list, and the index function can be used to check an empty string that could potentially act as a delimiter. The downside to this is that it only works for one split, that is, it can split the list into only 2 lists.

# Python3 demo code
# split the list into siblist on a separator
# using index () + slice the list

 
# initializing list

test_list = [ `Geeks` , `for` ,` `,` Geeks`, 1 , 2 ]

  
# print original list

print ( "The original list:" + str (test_list))

 
# using index () + slice the list
# split the list into siblist delimited

temp_idx = test_list.index (` `)

res = [test_list [: temp_idx], test_list [temp_idx + 1 :]]

  
# print result

print ( "The list of sublist after seperation:" + str (res))

Output:

The original list: [`Geeks`, `for`, ”, `Geeks`, 1, 2]
The list of sublist after seperation: [[`Geeks`, `for`], [`Geeks`, 1, 2]]

Method # 2: Using itertools.groupby () + list comprehension
The problem of the above method can be solved by using the groupby function, which can divide by all the list breaks given by empty strings.

# Python3 demo code
# split the list into siblist separator
# using itertools.groupby () + list comprehension

from itertools import groupby

 
# initializing list

test_list = [ `Geeks` ,` `,` for `, ` `, 4, 5, ` `,

  ` Geeks` , `CS` ,` `,` Portal`]

 
# print original list

pri nt ( "The original list:" + str (test_list))

 
# using itertools.groupby () + list comprehension
# split list into siblist separator

res = [ list (sub) for ele, sub in groupby (test_list, key = bool ) if ele]

 
# print result

print ( "The list of sublist after seperation:" + str (res))

Output:

The original list: [`Geeks`, ”, `for`,”, 4, 5, ”, `Geeks`, `CS`,”, `Portal`]
The list of sublist after seperation: [[`Geeks`], [`for`], [4, 5], [`Geeks`, `CS`], [`Portal`]]