2016-10-09 10 views
0

함수에 시드 값이 seeds 인 시퀀스가 ​​있으면 두 번째 시퀀스 xs에 표시된 횟수만큼 모든 단일 시드 값을 계산해야합니다. 그런 다음 시드 값과 동일한 순서로 정수를 반환해야합니다. seeds에 중복 값이 ​​포함 된 경우 반환 된 목록에 중복 된 개수를 유지합니다. 예를 들어 count_each([10,20],[10,20,50,20,40,20])[1,3]count_each('aeiou','encyclopedia') should return [1,2,1,1,0]을 반환해야합니다.두 번째 시퀀스의 첫 번째 시퀀스에서 시드 값 계산

이 기능을 프로그래밍하는 방법에 대해 고민하고 있습니다. 이것은 지금까지 가지고있는 것이지만 두 번째 시퀀스에서 시드 값의 수를 정확히 계산할뿐 아니라 값이 존재하는지 확인하는 것이 아니라는 것을 정확히 알 수는 없습니다. 이것에 대한 도움을 주시면 감사하겠습니다.

def count_each(seeds,xs): 

    if seeds in xs: 
     if seeds == True 
    return seeds 
     elif seeds == False 
    return None 
+0

가능한 복제 [목록에있는 요소의 주파수를 계산하는 방법?] (http://stackoverflow.com/questions/2161752/how -elf-the-of-the-element-of-a-list) – Julien

답변

1
def count_letter(seeds,xs): 
    for c in seeds: 
     count=0 
     for d in xs: 
      if c==d: 
       count=count+1 
     print (c,"Occured ",count,"times") 

count_letter([10,20],[10,20,30,10]) 
count_letter('aeiou','encyclopedia') 
+0

이 코드 단편은 질문을 해결할 수 있지만 [설명 포함] (http://meta.stackexchange.com/questions/114762/explain-entire-code-based-answers)은 게시물의 품질을 향상시키는 데 정말로 도움이됩니다. 앞으로 독자의 질문에 답하고 있으며 코드 제안의 이유를 알지 못할 수도 있습니다. – andreas

+0

c와 d는 무엇입니까? 이것은 가장 좋은 대답처럼 보이지만 함수를 테스트 할 때 1을 반환하거나 없음을 반환하고 시드 값이 2 번째 시퀀스에 몇 번 나타나지 않았는지 – famguy74

+0

c는 첫 번째 'for 루프'의 문자를 보유하는 변수이고 d는 보유합니다 문자는 두 번째 'for loop'에 대해 xs를 형성 한 다음 'c == d'를 비교하여 true이면 1을 더합니다. –

2

내가 두 번째 순서로 종자 값의 수를 계산하고 값이 존재하는 경우 단지 확인하지 얼마나 정확히 알아낼 수 없습니다.

파이썬 시퀀스에는 편리한 .count 메서드가 있습니다.

>>> [1,1,1,2,3,4,5].count(1) 
3 
>>> "ababababcdefg".count("b") 
4 
2

체크 아웃 collections.Counter()

import collections 

def count_each(seeds,xs): 
    c = collections.Counter(xs) 
    return [c[seed] for seed in seeds]