In Python, I have an array of,
("192.168.1.1","high"),("192.168.1.1","high"),("192.168.1.1","low"),("192.168.1.1","low"),("192.168.1.2","high"),("192.168.1.2","medium") and I need an output by showing count
("192.168.1.1","high",2),("192.168.1.1","low",2),("192.168.1.2","high",1),("192.168.1.2","medium",1) anyone please help me
42 Answers
You can use Counter from collections.
from collections import Counter l = [("192.168.1.1","high"),("192.168.1.1","high"),("192.168.1.1","low"),("192.168.1.1","low"),("192.168.1.2","high"),("192.168.1.2","medium")] counter = Counter(l) result = [(*key, counter[key]) for key in counter] 0If you don't care about order:
l = [("192.168.1.1","high"),("192.168.1.1","high"),("192.168.1.1","low"),("192.168.1.1","low"),("192.168.1.2","high"),("192.168.1.2","medium")] list(set([(*t, l.count(t)) for t in l])) 0