2017-02-19 2 views
3

저는 Python을 처음 사용하고 있으며 정수 목록을 입력으로 받아들이고 해당 목록의 정렬 된 버전을 반환하는 함수를 만들려고합니다. 각 하위 목록의 정수 합. 아래 코드는 내가 지금까지 가지고있는 코드이다. 어떤 제안이라도 좋을 것입니다. [[5,2,7,5], [8 :각 중첩 목록의 합계를 기반으로 정렬 목록 목록

는 정수의 목록을 입력하십시오 :

user_list = raw_input("Please enter a list of integers: ") 
def sort_nested_lists(user_list): 
    return sorted(user_list,key = sum) 
print sort_nested_lists 

지금 내가 오류를 얻을 : 여기

def sort_nested_lists (user_list): 
for list in user_list 
    x = sum(user_list)) 
    x = sorted(user_list) 
    return x 
print sort_nested_lists 

나의 새로운 코드 , 2,6,1], [3,1,8,9,5]]

추가 도움이 될 것입니다.

답변

2

이렇게 복잡 할 필요는 없습니다. 전부

return sorted(user_list,key=sum) 

: 간단하게 다음 한 줄를 사용합니다. key을 지정하면 sorted(..)은 주어진 함수에 따라 두 요소를 비교합니다. user_list의 요소에을 적용합니다. 그래서 여기서는 두 요소의 합을 기준으로 두 목록을 비교합니다.

+0

의견을 보내 주셔서 감사합니다! 문제에 대한 함수 매개 변수를 사용하려고하면 아래 코드가 실행되지 않는 이유에 대한 아이디어가 있습니까? 아마도 sort_nest_lists (user_list) : return sorted (user_list, key = sum) print sort_nested_lists – AvSmith

+0

@AvSmith 아마 함수를 호출하지 않았기 때문에 함수를 호출하기 위해'sort_nested_lists (your_list)'를해야한다. 만약 당신이 그것을 올바르게 부르면, 당신은 더 구체적으로 설명해야합니다 * 코드는 ** 오류 메시지, 예기치 않은 결과 등을 제공하여 실행하지 않습니다. –

2

이를 달성하기 위해, 당신은 결과의 목록은 하위 목록의 정수의 합에 따라 증가하는 순서로 정렬됩니다

>>> my_list = [[1, 6, 3], [2,1,0], [10, 3, 9]] 
>>> sorted(my_list, key=sum) 
[[2, 1, 0], [1, 6, 3], [10, 3, 9]] 

sum로와 sorted 함수를 호출 할 수 있습니다