Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 29, 2016 20:23:17

3AXAPOH
Зарегистрирован: 2016-08-29
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

проверка каждого элемента в списке со счетчиком

начал осваивать питон сегодня

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

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

заранее благодарю

Отредактировано 3AXAPOH (Авг. 29, 2016 20:25:52)

Офлайн

#2 Авг. 29, 2016 20:57:42

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

проверка каждого элемента в списке со счетчиком

ну хотя бы описали в чем проблема.

 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 там можно запускать пошагово и смотреть что и как выполняется

Отредактировано marvellik (Авг. 29, 2016 20:59:17)

Офлайн

#3 Авг. 30, 2016 05:57:17

3AXAPOH
Зарегистрирован: 2016-08-29
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

проверка каждого элемента в списке со счетчиком

marvellik
ну хотя бы описали в чем проблема.

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

Офлайн

#4 Авг. 30, 2016 08:23:20

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2580
Репутация: +  58  -
Профиль   Отправить e-mail  

проверка каждого элемента в списке со счетчиком

Ну можно список в стринг да искать по строке

 # -*- 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))



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#5 Авг. 30, 2016 09:01:17

3AXAPOH
Зарегистрирован: 2016-08-29
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

проверка каждого элемента в списке со счетчиком

ZerG
Ну можно список в стринг да искать по строке

кавычнки!!! вот чего не хватало)

Офлайн

#6 Авг. 30, 2016 09:03:20

3AXAPOH
Зарегистрирован: 2016-08-29
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

проверка каждого элемента в списке со счетчиком

ZerG
Ну можно список в стринг да искать по строке

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

то что выделено жирным?

Офлайн

#7 Авг. 30, 2016 09:29:14

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2580
Репутация: +  58  -
Профиль   Отправить e-mail  

проверка каждого элемента в списке со счетчиком

Join - обьединить
split - разделить

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

 s = 'one two tree'
ss = s.split()
print(ss)
['one', 'two', 'tree']



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#8 Авг. 30, 2016 12:42:47

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

проверка каждого элемента в списке со счетчиком

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

Офлайн

#9 Авг. 30, 2016 13:22:44

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

проверка каждого элемента в списке со счетчиком

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



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version