Python Forum
count each element in a list - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: General Coding Help (https://python-forum.io/forum-8.html)
+--- Thread: count each element in a list (/thread-26425.html)



count each element in a list - glennford49 - May-01-2020

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)



RE: count each element in a list - DPaul - May-01-2020

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


RE: count each element in a list - pyzyx3qwerty - May-01-2020

If you want to print the same element in both lists, you can do:
for i in list1 :
    if i in list2 :
        #your code



RE: count each element in a list - glennford49 - May-01-2020

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


RE: count each element in a list - anbu23 - May-01-2020

>>> 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



RE: count each element in a list - glennford49 - May-01-2020

(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


RE: count each element in a list - pyzyx3qwerty - May-01-2020

(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


RE: count each element in a list - glennford49 - May-01-2020

(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?


RE: count each element in a list - anbu23 - May-01-2020

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

Remove len()


RE: count each element in a list - glennford49 - May-01-2020

(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!