2013-06-07 2 views
0

я пытаюсь считать «а в конкретной списка х, но этот код не так, и я не могу понять, почемуПодсчитать количество конкретных значений в списке?

x = ['a', 'b', 'a'] 

def a_count(x): 
    n = 0 
    for ltr in x: 
     if ltr == 'a': 
      n = n + 1 
     else : 
      n = n 
     return n 
    return 

я также был бы признателен, если кто-то может показать мне, как считать» а из другого список, который пользователь устанавливает значения. это можно сделать, установив пустой список, например

y = [] 

и ... затем?

ответ

3

Вы возвращаетесь слишком рано, изменив последние несколько строк функции отлично работает

x = ['a', 'b', 'a'] 

def a_count(x): 
    n = 0 
    for ltr in x: 
     if ltr == 'a': 
      n = n + 1 
    return n 

>>> a_count(x) 
2 

Вы можете сделать это более лаконично, как так:

>>> sum(elem == 'a' for elem in x) 
2 

Код выше просто добавляет 0 сек и 1s (повторные публикации elem == 'a' для элемента достижений), чтобы получить общее количество 'a' s

0
x = ['a', 'b', 'a'] 

def a_count(x): 
    n = 0 
    for ltr in x: 
     if ltr == 'a': 
      n = n + 1 
    return n 
0

Вот такой подход, который может пригодиться:

from collections import Counter 

x = ['a', 'b', 'a'] 
Counter(x)['a'] 

Это будет использовать встроенный счетчик сбора для подсчета всех уникальных значений. Затем доступ к количеству для a

3
>>> x = ['a', 'b', 'a'] 
>>> x.count('a') 
2 
Смежные вопросы