print all subarrays with zero sum practice code example

Example: Function to print all subarrays with a zero-sum in a given array

# Utility function to insert <key, value> into the dictionary
def insert(dict, key, value):
 
    # if the key is seen for the first time, initialize the list
    dict.setdefault(key, []).append(value)
 
 
# Function to print all sublists with a zero-sum present in a given list
def printallSublists(A):
 
    # create an empty dictionary to store the ending index of all
    # sublists having the same sum
    dict = {}
 
    # insert `(0, -1)` pair into the dictionary to handle the case when
    # sublist with zero-sum starts from index 0
    insert(dict, 0, -1)
 
    sum = 0
 
    # traverse the given list
    for i in range(len(A)):
 
        # sum of elements so far
        sum += A[i]
 
        # if the sum is seen before, there exists at least one
        # sublist with zero-sum
        if sum in dict:
 
            list = dict.get(sum)
 
            # find all sublists with the same sum
            for value in list:
                print("Sublist is", (value + 1, i))
 
        # insert (sum so far, current index) pair into the dictionary
        insert(dict, sum, i)