Найти - Пользователи
Полная версия: проверка каждого элемента в списке со счетчиком
Начало » Python для новичков » проверка каждого элемента в списке со счетчиком
1
3AXAPOH
начал осваивать питон сегодня

есть список, нужно каждый элемент списка сравнить с заданным элементом, посчитать сколько их в списке.
то есть допустим есть список букв, нужно посчитать сколько букв “а”, или сколько цифр “2” и тд

логика скорее всего такая: создаем цикл, в нем каждый эелемент в списке сравниваем с некоей переменной. при каждом совпадении в счетчике делаем “+1”, дойдя до конца списка программы выдает конечный ответ. записать правильно пока не получается

заранее благодарю
marvellik
ну хотя бы описали в чем проблема.
 fantom = 2
spisok = [1,2,7,55,2,78,4,67,2,3,2,25,2]
res = 0
for i in spisok:
    if i == fantom:
          res += 1
print(res)
а вообще это проще делается
print(spisok.count(fantom))
попробуйте освоить тут http://pythontutor.ru там можно запускать пошагово и смотреть что и как выполняется
3AXAPOH
marvellik
ну хотя бы описали в чем проблема.

проблема в то что если вы будете считать например пятерки, то в предложенном вами решении программа проигнорирует “55”.
ZerG
Ну можно список в стринг да искать по строке

 # -*- coding: utf-8 -*-
symbol = '5'
spisok = [1, 2, 7, 55, 2, 78, 4, 67, 2, 3, 2, 25, 2]
result = ''.join(str(e) for e in spisok)
print(result.count(symbol))
3AXAPOH
ZerG
Ну можно список в стринг да искать по строке

кавычнки!!! вот чего не хватало)
3AXAPOH
ZerG
Ну можно список в стринг да искать по строке

что означает в
''.join(str(e) for e in spisok)

то что выделено жирным?
ZerG
Join - обьединить
split - разделить

 l = ['a', 'b', 'c']
ll = ''.join(l)
print(ll)
abc

 s = 'one two tree'
ss = s.split()
print(ss)
['one', 'two', 'tree']
marvellik
3AXAPOH
нужно каждый элемент списка сравнить с заданным элементом
3AXAPOH
будете считать например пятерки
ну я думаю что ‘5’ и ‘55’ это разные строки как 5 и 55 тоже разные числа поэтому и проигнорирует.если список состоит из строк то тогда так
 fantom = '5'
spisok = ['1','2','555','55','25','78','525','2']
res = 0
for i in ''.join(spisok):
    if i == fantom:
          res += 1
print(res)
 >>> 8
или так
 print(''.join(spisok).count(fantom))
>>> 8
а если список состоит из чисел то его тоже можно привести к строке и посчитать количество цифр 5
py.user.next
  
>>> def count_char(seq, ch):
...      return sum(i.count(ch) for i in seq)
... 
>>> lst = ['abc', 'def', 'aab', 'ghi', '1a2']
>>> 
>>> count_char(lst, 'a')
4
>>> count_char(lst, 'e')
1
>>> count_char(lst, 'x')
0
>>>
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB