Sum of odd numbers in list python

Just to make a quick comment in the form of an answer. If you wanted to make a list of all the odd number in a between 0 and 10, the end points don't matter. If the list was from 0 to 11 then the end point matters. Just remember that range[0,11] = [0,1,2,3,4,5,6,7,8,9,10] and won't include 11.

Now to explain the generator that is being used. To make to list using numbers as defined by you, you could do this.

odds = []
for num in numbers:
    if num % 2 == 1:
        odds.append[num]

This would give you odds = [1,3,5,7,9]. Python has something call list comprehension that make it really easy to do things like this. The above can be easily written like this

odds = [num for num in number if num % 2 == 1]

and since you want the sum off all the numbers in the list and the sum function takes list, the answer is just

sum[[num for num in number if num % 2 == 1]]

Note that most of the answer don't have brackets. This is because without it it becomes a generator.

odds = [num for num in number if num % 2 == ]
print odds  #--> 
odds.next[] # 1
odds.next[] # 3
...

Since sum takes these as well and generator are faster and less memory intensive than list that is why the best answer is

sum[num for num in numbers if num % 2 == 1]

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 add the sum of odd numbers in Python?

Use the following steps to find or calculate sum of odd number from 1 to n in python:.
Take the input number from 1 to that user-entered value..
Define a variable, which name total..
Iterate for loop and check each number using num%2 != ... .
If the number is odd, so add the number into total variable..
Print the sum of odd number..

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

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?

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 even numbers in a list Python?

"] exit[] sum = 0 count = 0 for i in range[tot]: if nums[i]%2 == 0: sum = sum + nums[i] count = count+1 if count==0: print["\nEven number is not found in this list! "] else: print["\nSum of Even Numbers =", sum] except ValueError: print["\nInvalid Size Input!

Chủ Đề