# Python Program to Subtract K from each digit

• Difficulty Level : Easy
• Last Updated : 11 Jul, 2022

Given a list, the task is to write a Python Program to subtract K from each digit, if the element gets below 0, retain 0.

Examples:

Input : test_list = [2345, 8786, 2478, 8664, 3568, 28], K = 4

Output : [1, 4342, 34, 4220, 124, 4]

Explanation : In 2345, 4 subtracted from 2 is -2, hence ceiled to 0. Hence just 5-4 = 1, is retained. and thus output.

Input : test_list = [2345, 8786, 2478, 8664, 3568, 28], K = 3

Output : [12, 5453, 145, 5331, 235, 5]

Explanation : In 2345, 3 subtracted from 2 is -1, hence ceiled to 0. Hence just 5-3 = 2 and 4-3 = 1, are retained. and thus output.

Method 1: Using str() + – operator

In this, we convert the integer to string and perform subtraction by converting each digit to integer, the result is joined again and type cast back to integer.

## Python3

 `# Python3 code to demonstrate working of``# Subtract K from each digit``# Using str() and - operator` `# initializing list``test_list ``=` `[``2345``, ``8786``, ``2478``, ``8664``, ``3568``, ``28``]``             ` `# printing original list``print``(``"The original list is : "` `+` `str``(test_list))` `# initializing K``K ``=` `4` `res ``=` `[]``for` `ele ``in` `test_list:``    ``str_ele ``=` `str``(ele)``    ` `    ``# getting maximum of 0 or negative value using max()``    ``# conversion of each digit to int``    ``new_ele ``=` `int``(''.join([ ``str``(``max``(``0``, ``int``(el) ``-` `K)) ``for` `el ``in` `str_ele]))``    ``res.append(new_ele)` `# printing result``print``(``"Elements after subtracting K from each digit : "` `+` `str``(res))`

Output:

The original list is : [2345, 8786, 2478, 8664, 3568, 28]

Elements after subtracting K from each digit : [1, 4342, 34, 4220, 124, 4]

Time Complexity: O(n*m) where n is the number of elements in the list and m is the maximum number of digits in any element of the list.
Auxiliary Space: O(n*m)

Method 2: Using list comprehension

Similar to above method, just list comprehension is used for the task of providing a shorthand.

## Python3

 `# Python3 code to demonstrate working of``# Subtract K from each digit``# Using list comprehension` `# initializing list``test_list ``=` `[``2345``, ``8786``, ``2478``, ``8664``, ``3568``, ``28``]``             ` `# printing original list``print``(``"The original list is : "` `+` `str``(test_list))` `# initializing K``K ``=` `4` `# list comprehension providing shorthand``res ``=` `[``int``(''.join([ ``str``(``max``(``0``, ``int``(el) ``-` `K)) ``for` `el ``in` `str``(ele)]))``       ``for` `ele ``in` `test_list]` `# printing result``print``(``"Elements after subtracting K from each digit : "` `+` `str``(res))`

Output:

The original list is : [2345, 8786, 2478, 8664, 3568, 28]

Elements after subtracting K from each digit : [1, 4342, 34, 4220, 124, 4]

Time Complexity: O(n*m) where n is the number of elements in the list and m is the maximum number of digits in any element of the list.
Auxiliary Space: O(n*m)

My Personal Notes arrow_drop_up