2017-02-09 1 views
1

한 줄로 코드를 최적화하기 위해 함수 나 메서드를 호출하지 않고 코드에 명확한 문을 작성하려고합니다. 나는 이것에 대해 생각하고있는 동안 이것이 나의 경우에도 가능한지 궁금해했다. 나는 이것에 대한 정보를 찾고 있었지만 매우 드물게 보이지만, 현재 작업에서는 최적화 섹션을 제외하고는 코드를 그대로 유지할 수 있어야합니다. 나 한테 줄 수 있기를 바랍니다. 어떤 도움도 환영합니다.함수를 호출하지 않고 명령문을 작성 하시겠습니까?

이것은 현재 진행 상황입니다.

def count_chars(s): 
'''(str) -> dict of {str: int} 

    Return a dictionary where the keys are the characters in s and the values 
    are how many times those characters appear in s. 

    >>> count_chars('abracadabra') 
    {'a': 5, 'r': 2, 'b': 2, 'c': 1, 'd': 1} 
    ''' 
    d = {} 

    for c in s: 
     if not (c in d): 
      # This is the line it is assumed to be modified without calling function or method 
     else: 
      d[c] = d[c] + 1 

    return d 
+2

비트, 당신은 * 암시 * 방법의 무리를 호출합니다. 예를 들어'__iter__'는'for' 루프에서 호출됩니다. –

+0

C 언어에서와 같이 삼항 연산자를 염두에 두셨습니까? –

+0

'print ({letter : set (word)}의 문자에 대한 {letter : word.count (letter)}') .count()를 사용하여 규칙을 위반 했습니까? – Keatinge

답변

0
코멘트에서 언급 한 바와 같이 이것에 대해, 그것은 암시 적 기능을 사용합니까 어떻게

,하지만 난 당신이 찾고있는 물건의 종류 것 같아요? 코드의 나머지 부분에서

s='abcab' 
chars={} 
for char in s: 
    if char not in chars: 
     chars[char]=0 
    chars[char]+=1 

결과

{'a': 2, 'b': 2, 'c': 1} 
관련 문제