2016-07-24 2 views
-1

으로 변환하면 파이썬 코드 결과를 변환하는 데 도움이됩니다 어디에서 모음이 사전에 문자열로 나타나는가?파이썬에서 결과를 사전

count = 0 
s = "apple" 
vowels = ['a' , 'e' , 'i' ,'o' , 'u'] 
    for char in s: 
    if char in vowels: 
    count += 1 
    print ('Number of vowels: ' + str(count)) 

결과는해야한다 : 사과에 대한 : { 'A': 1, 'E': 1}

+1

어떤 사전을 찾으려고합니까? 모음에서 시간의 숫자까지 나타 납니까? – Mureinik

답변

0

: 대신 count += 1를 증가의, 사전에 직접 증가 :

count = 0 
s = "apple" 
vowels = ['a' , 'e' , 'i' ,'o' , 'u'] 
vowels_dict = {} 
for char in s: 
    if char in vowels: 
     if char in vowels_dict: 
      vowels_dict[char] +=1 
     else: 
      vowels_dict[char] = 1 

print (vowels_dict) 
+0

들여 쓰기가 꺼져 있고 원래'vowels_dict'에있는 것이 없으므로 존재하지 않는 키에 어떻게 추가 할 것입니까? –

+0

@PythonMaster :'else'는'vowels_dict [char] = 1'을 가지고 있습니다. 'else'의 콜론은 생략했지만 코드의 논리는 정확합니다. 나는 그것을 고쳤다. 지금. – zondo

+0

이제 더 유감스럽게 생각합니다. –

0

먼저, 사전에 vowels를 만들어 보자. 우리는 우리가 첫 번째 루프에서 만드는 경기에 개최하는 두 번째가 필요합니다

s = "apples" 
vowels = dict.fromkeys('aeiou', 0) 
matches = {} 

우리는 (모음을 값에 해당 를 증가 약간 for 루프를 수정해야합니다)

for char in s: 
    if char in vowels: 
     vowels[char] += 1 

char가 모음 (또는 간단히 말하자면 있는지 검사 위에 for 루프, vowels 검색된 키) 중 하나이다. 예를 들어 char이 "a"인 경우 if 문은 True를 반환하고 키 ("a")의 값 (콜론 뒤에있는 정수)은 다음과 같이 증가합니다. 하나. 다음 새 값을 할당

for vowel in vowels: 
    if vowels[vowel] < 1: # The vowel didn't appear in the word 
     continue 
    else: 
     matches[str(vowel)] = vowels[vowel] 

마지막 줄은 matches 사전합니다 (matches[str(vowel)] 부분)를위한 새로운 키를 생성 : 이제 우리가 필요한 것은 matches 사전에 모든 키 값이 0 이상을 넣어하는 것입니다 vowels 사전 (= vowels[vowel] 부분)의 해당 키 값과 동일한 키 이제 우리가해야 할 일은 matches 사전을 인쇄하는 것입니다

print matches 

전체 코드 : 같은 간단한 변화 할 것

count = 0 
s = "apple" 
vowels = dict.fromkeys('aeiou', 0) 
matches = {} 
for char in s: 
    if char in vowels: 
     vowels[char] += 1 
for vowel in vowels: 
    if vowels[vowel] < 1: 
     continue 
    else: 
     matches[str(vowel)] = vowels[vowel] 

print matches 
+0

당신의 모음 사전은'dict.fromkeys ('aeiou', 0)' – zondo

+0

으로 더 간단하게 인스턴스화 될 수 있습니다. 이것이 작동하고 시간을 절약 할 수 있습니다! –