-2
lst=[1,3,4,2,555,3,324,30,80,100,200,280,43,654,223,34,6,65]

def oddeven(lst):
    even=0
    odd=0
        
    for i in lst:
        if i%2==0:
            even=even+1
                   
    for k in lst:
        if k%2!=0:
            odd=odd+1
           
    print("number of even:",even)
    print("number of odd :",odd)

    print(" even number: ",i)
    print(" odd number: ",k)
    
oddeven(lst)

I want the output to be:

print(" even number: ",i) # => print all even numbers in lst
print(" odd number: ",k)  # => print all odd numbers in lst

Ex:

>>print(" odd number: ",k)
 odd number: 1,3,6...
Tomerikoo
  • 18,379
  • 16
  • 47
  • 61

2 Answers2

1
def oddeven(lst):
    odd = [str(x) for x in lst if x % 2 == 1]
    even = [str(x) for x in lst if x % 2 == 0]
    print("number of even:", len(even))
    print("number of odd :", len(odd))
    print(" even number  :", ', '.join(even))
    print(" odd number   :", ', '.join(odd))

This prints:

number of even: 11
number of odd : 7
 even number  : 4, 2, 324, 30, 80, 100, 200, 280, 654, 34, 6
 odd number   : 1, 3, 555, 3, 43, 223, 65
wovano
  • 4,543
  • 5
  • 22
  • 49
0
lst=[1,3,4,2,555,3,324,30,80,100,200,280,43,654,223,34,6,65]


   def oddeven(lst):

      even=0
      odd=0


    for i in lst:
        if i%2==0:
            even=even+1
        else:
            odd=odd+1

    print("number of even:",even)
    print("number of odd :",odd)

    print("Even numbers",end=":")
    for i in lst:
        if i%2==0:
            print(str(i),end=",")


    print("\nOdd numbers",end=":")
    for i in lst:
        if i%2!=0:
            print(str(i),end=",")



    oddeven(lst)

Instead of having two for loops, you can have one to count both even and odd numbers. Then to print all odd and all even I used two different loops.

ZeinZebib
  • 32
  • 1
  • 4