Python Forum

Full Version: count each element in a list
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
hi guys , i want to print same element in each item in a list,
my code returns nothing except if i print list2,
it should return 3 elements in first item and 2 elements in a second one
    list1=[10,20,30,40]
    list2 =[[10,20,30,1],[10,20,1,2]]
    #print(list2)
    for i in list2:
        num= i.count(list1)
    if (num > 2):
        print(num)
I suspect that you will get a result if you do:
print(len(list1))
print(len(list2))
Although i see 4 elements in list1.
Count is not necessary.
Paul
If you want to print the same element in both lists, you can do:
for i in list1 :
    if i in list2 :
        #your code
Thanks for your response,len() just return number of item in list2 which is 2, i want if there is/are same element on each item from list2 will be printed, using list1 as comparison
>>> list1=[10,20,30,40]
>>> list2 =[[10,20,30,1],[10,20,1,2]]
>>> for lst in list2:
...   len([value for value in lst if value in list1])
...
3
2
(May-01-2020, 10:34 AM)pyzyx3qwerty Wrote: [ -> ]If you want to print the same element in both lists, you can do:
for i in list1 :
    if i in list2 :
        #your code
it returns nothing since list2 has no same item from list1 it has only 3 same elements that which i want to be printed
(May-01-2020, 10:45 AM)glennford49 Wrote: [ -> ]
(May-01-2020, 10:34 AM)pyzyx3qwerty Wrote: [ -> ]If you want to print the same element in both lists, you can do:
for i in list1 :
    if i in list2 :
        #your code
it returns nothing since list2 has no same item from list1 it has only 3 same elements that which i want to be printed

I know, as i misread your thread as print the elements, not print the number of elements
(May-01-2020, 10:47 AM)pyzyx3qwerty Wrote: [ -> ]
(May-01-2020, 10:45 AM)glennford49 Wrote: [ -> ]it returns nothing since list2 has no same item from list1 it has only 3 same elements that which i want to be printed

I know, as i misread your thread as print the elements, not print the number of elements

its just fine, it just happen that i can hardly fix my code, thanks for your response

(May-01-2020, 10:39 AM)anbu23 Wrote: [ -> ]
>>> list1=[10,20,30,40]
>>> list2 =[[10,20,30,1],[10,20,1,2]]
>>> for lst in list2:
...   len([value for value in lst if value in list1])
...
3
2

how to return the exact same element found in list2?
(May-01-2020, 10:50 AM)glennford49 Wrote: [ -> ]how to return the exact same element found in list2?

Remove len()
(May-01-2020, 11:09 AM)anbu23 Wrote: [ -> ]
(May-01-2020, 10:50 AM)glennford49 Wrote: [ -> ]how to return the exact same element found in list2?

Remove len()

thumbs up, this saves my day!