2011-10-11 2 views
-1

나는 이것이 내가 내 코드에 대한 답을 얻고있다하지만 난 내 코드에 만족하지 오전이 비단뱀 코드를 개선하는 방법은 무엇입니까?

>>> getNumbers(10) 
[100, 64, 36, 16, 4, 0, 4, 16, 36, 64, 100] 
>>> getNumbers(9) 
[81, 49, 25, 9, 1, 1, 9, 25, 49, 81] 

을 problem-에 대해 내가 코딩해야하는 문제를하고있는 중이 야,이 코드를 개선하기 위해 몇 가지 옵션을 제안 해주십시오.

def getNumbers(num): 
myList=[] 
mylist=[] 
if num%2==0: 
    for numbers in range(num,-2,-2): 
     myList.append(numbers**2) 
    for numbers in range(2,num+2,2): 
     mylist.append(numbers**2) 

    print myList+mylist 

elif num%3==0: 
    for numbers in range(num,-1,-2): 
     myList.append(numbers**2) 
    for numbers in range(1,num+2,2): 
     mylist.append(numbers**2) 

    print myList+mylist 

else: 
    print(mylist) 

4 for loops !!! 이것은 나를 괴롭히는 것이다! !!

+5

http://codereview.stackexchange.com/ –

답변

1

좋아요?

def getNumbers(n): 
    return [i * i for i in range(-n, n + 1, 2)] 
+0

그런 식으로 람다를 사용하지 마십시오. 그것은 틀렸어 – JBernardo

+0

난 그냥 초보자 야 .pyschool.i에서 사용할 수있는리스트 문제를하고있다. 람다에 대해서 모른다. 나는 또한 그들이 내 질문을 닫는 이유를 모르겠다.이 포럼에 관한 나의 두 번째 질문이다. 나는 단지 내 코드를 개선하고 싶다. 너희들이 나에게 최선의 선택권을 말할 수 있다는 것을 안다. 나는 현명한 질문을 할 수 없다. 지금까지는 그 수준이 아니기 때문에 ... 그러나 도움의 손길들에게 감사한다. :)) 당신은 저에게 최고를주었습니다. 방법에 대한 루프를 제거하는 ... – Praveenks

+0

"나는 또한 그들이 내 질문을 닫는 이유를 모르겠다." 그것은 정확히 왜, 바로 거기에 있습니다 : 스택 오버플로에 대한 주제에서 벗어났습니다. 이 사이트는 코딩 스타일을 개선하는 방법이 아니라 코딩 문제를 해결하는 방법입니다. –

관련 문제