Перебрать список, прошу помочь
Дан список, где элементы - списки. Пример:
[[137.0, '2021-01-22'], [139.0, '2021-01-23'], [142.0, '2021-01-26'], [137.0, '2021-01-27'], [142.0, '2021-01-28'], [137.0, '2021-01-29'], [142.0, '2021-01-30']]
Если заметили что списке значение 137.0 встречается 3 раза общем списке, вот если определенный элемент хотябы три раза или более встречается нужно дать сигнал, что и именно таких датах встречается одинаковые цены, а если меньше трех раз тогда игноририется.
Ответы (1 шт):
например можно сделать так (в лоб):
arr = [[137.0, '2021-01-22'], [139.0, '2021-01-23'], [142.0, '2021-01-26'], [137.0, '2021-01-27'], [142.0, '2021-01-28'], [137.0, '2021-01-29'], [132.0, '2021-01-30']]
res = [obj for obj in arr if len([1 for elem in arr if elem[0] == obj[0]]) >= 3]
print(res)
т.е. выделяем только те элементы, первый элемент которых встречается в массиве 3 раза и более
т.е.
проходим по всем элементам списка
for obj in arr
и для каждого элемента считаем сколько раз его первое значение встречается в массиве
len([1 for elem in arr if elem[0] == obj[0]])
в данном случае просто формируем произвольный массив и подсчитываем кол-во его элементов
тоже самое можно сделать чуть менее скотско и более читабельно:
res = [obj for obj in arr if [elem[0] for elem in arr].count(obj[0]) >= 3]