Найти процент повторяющегося элемента в списке Python
a = []
for j in range(20):
a.append(randint(0,10))
a.sort()
print(a)
b = [x for x, j in Counter(a).items() if j > 1] #нахожу числа, которые повторяются
c = random.choices(b, k = 1) #выбираю любое число из списка b
print("random number:", c)
for j in res:
res = (длина повторяющегося элемента) * 100 / len(a)
print("procent =", res)
Решил поэксперементировать со списками и наткнулся на проблему. Мне нужно подсчитать количество элементов, которые повторяются, но что-то у меня не получается.
Ответы (2 шт):
Автор решения: Zhihar
→ Ссылка
способ 1: универсальный
import random
size = 20
arr = [random.randint(0, 10) for _ in range(size)]
stats = {}
for i in arr:
if i in stats:
stats[i] += 1
else:
stats[i] = 1
print(stats[random.choice(arr)])
способ 2: простой
import random
size = 20
arr = [random.randint(0, 10) for _ in range(size)]
print(arr.count(random.choice(arr)))
Автор решения: CrazyElf
→ Ссылка
Как вариант - я поправил ваш код до рабочего состояния:
from random import randint, choices
from collections import Counter
a = []
for j in range(20):
a.append(randint(0,10))
a.sort()
print(a)
cnt = Counter(a)
b = [x for x, j in cnt.items() if j > 1] #нахожу числа, которые повторяются
c = choices(b, k = 1)[0] #выбираю любое число из списка b
print("random number:", c)
res = cnt[c] * 100 / len(a)
print("procent =", res)
Вывод:
[0, 2, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 7, 7, 7, 8, 8, 8, 10]
random number: 4
procent = 25.0