Sum of odd digits in a number in python

The following article shows how given an integer list, we can produce the sum of all its odd and even digits.

Input : test_list = [345, 893, 1948, 34, 2346] 
Output : 
Odd digit sum : 36 
Even digit sum : 40 
Explanation : 3 + 5 + 9 + 3 + 1 + 9 + 3 + 3 = 36, odd summation.
Input : test_list = [345, 893] 
Output : 
Odd digit sum : 20 
Even digit sum : 12 
Explanation : 4 + 8 = 12, even summation. 

Method 1 : Using loop, str[] and int[]

In this, we first convert each element to string and then iterate for each of its element, and add to respective summation by conversion to integer.

Python3

test_list = [345, 893, 1948, 34, 2346]

print["The original list is : " + str[test_list]]

odd_sum = 0

even_sum = 0

for sub in test_list:

    for ele in str[sub]:

        if int[ele] % 2 == 0:

            even_sum += int[ele]

        else:

            odd_sum += int[ele]

print["Odd digit sum : " + str[odd_sum]]

print["Even digit sum : " + str[even_sum]]

Output

The original list is : [345, 893, 1948, 34, 2346]
Odd digit sum : 36
Even digit sum : 40

Method 2: Using loop and sum[]

In this, we perform task of getting summation using sum[], and loop is used to perform the task of iterating through each element.

Python3

test_list = [345, 893, 1948, 34, 2346]

print["The original list is : " + str[test_list]]

odd_sum = 0

even_sum = 0

for sub in test_list:

    odd_sum += sum[[int[ele] for ele in str[sub] if int[ele] % 2 == 1]]

    even_sum += sum[[int[ele] for ele in str[sub] if int[ele] % 2 == 0]]

print["Odd digit sum : " + str[odd_sum]]

print["Even digit sum : " + str[even_sum]]

Output

The original list is : [345, 893, 1948, 34, 2346]
Odd digit sum : 36
Even digit sum : 40

Method 3: Using list comprehension 

Python3

test_list = [345, 893, 1948, 34, 2346]

odd_sum = 0

even_sum = 0

odd_sum += sum[[int[ele]

                for sub in test_list for ele in str[sub] if int[ele] % 2 == 1]]

even_sum += sum[[int[ele]

                 for sub in test_list for ele in str[sub] if int[ele] % 2 == 0]]

print["Odd digit sum : " + str[odd_sum]]

print["Even digit sum : " + str[even_sum]]

Output

Odd digit sum : 36
Even digit sum : 40

Method 4: Using the enumerate function

Python3

test_list = [345, 893, 1948, 34, 2346]

odd_sum = 0

even_sum = 0

odd_sum += sum[[int[ele] for i, sub in enumerate[test_list]

                for ele in str[sub] if int[ele] % 2 == 1]]

even_sum += sum[[int[ele] for i, sub in enumerate[test_list]

                 for ele in str[sub] if int[ele] % 2 == 0]]

print["Odd digit sum : " + str[odd_sum]]

print["Even digit sum : " + str[even_sum]]

Output

Odd digit sum : 36
Even digit sum : 40


How do you find the sum of odd digits in Python?

Input : test_list = [345, 893, 1948, 34, 2346] Output : Odd digit sum : 36 Even digit sum : 40 Explanation : 3 + 5 + 9 + 3 + 1 + 9 + 3 + 3 = 36, odd summation. Input : test_list = [345, 893] Output : Odd digit sum : 20 Even digit sum : 12 Explanation : 4 + 8 = 12, even summation.

How do you find the sum of odd numbers in a number?

The formula for finding the sum of odd numbers is Sn= n/2 × [a + l] where 'a' is the first odd number, 'l' is the last odd number and 'n' is the number of odd numbers present in that range.

How do you add odd numbers to a list in Python?

Suppose we have a list of n elements called nums. We have to find sum of all odd elements from the list. So, if the input is like nums = [5,7,6,4,6,9,3,6,2], then the output will be 24 because 5+7+9+3 = 24.

How do you find the sum of odd and even numbers?

Sum of an even number and an odd number is always an odd number.

Chủ Đề