2017-01-13 4 views
2

목록에서 목록을 정렬하여 값이 최소에서 최대로 또는 그 반대로 쉽게 정렬 될 수 있습니까? 지금까지 선도적 가치를 기반으로 목록 자체를 주문하는 것에 관한 정보 만 찾을 수 있습니다. 지금목록 내 목록 정렬

data = [sorted(x) for x in data] 

data입니다 :

data = [[8,7], [10,5,], [8,10]] 

>> [[7,8], [5,10], [8,10] 
+8

이 참고하는 방법을 보여 둥근 괄호를 사용하는'tuple()'이 아닌 대괄호를 사용한다. –

답변

6

입니다 ... 목록으로 바꿀 실제로 해당 map 객체에 list을 사용, 여기에 포함 된 튜플은, 당신은 또한 조합을 할 수 없다 당신이 목록으로 필요하면 당신이 그것을 사용하는 경우, 당신은, 그렇지 않으면 다시 list로 변환 할 필요가 있으므로

Python3에서
>>> data = [[8,7], [10,5,], [8,10]] 
>>> 
>>> list(map(sorted, data)) 
[[7, 8], [5, 10], [8, 10]] 

map, 반복자를 반환 내장 방법 mapsorted의 루프 t 암탉을 목록으로 변환 할 필요가 없습니다. 이 방법으로 메모리를 절약합니다.

편집 :

의견에 응답, 당신은 같은 작업을 수행 할 수 있습니다

>>> def f(lst): 
     lst = sorted(lst) 
     return(lst[0], lst) 

>>> print(*map(f, data)) 
(7, [7, 8]) (5, [5, 10]) (8, [8, 10]) 

또는 컴팩트 미만 읽을 : 주문하려는 경우

>>> print(*map(lambda lst: '{} - {}'.format(lst[0], lst), map(sorted, data)), sep='\n') 
7 - [7, 8] 
5 - [5, 10] 
8 - [8, 10] 
+0

번호 쌍을위한 주요 변수를 인쇄하는 데 사용할 수있는 함수가 있습니까? 즉. [7,8]은 7로, [7,8]. 사용하려고 시도한 함수는 정렬 된 쌍의 목록으로 출력 한 다음 변수를 출력합니다. – alienmode

+0

@AaronSmith, 업데이트 된 답변 확인 –

+0

도움이되기를 기쁘게 생각하며, 귀하의 문제에 도움이된다고 생각하는 것을 받아들이십시오. –

10

data의 각 요소 (각 list 객체)를 정렬하는 지능형리스트를 사용하여 여기에

은 예입니다

[[7, 8], [5, 10], [8, 10]] 

다음과 같이 할 수도 있습니다 :

map(sorted, data) 

그런 다음 당신은 무엇을해야하는 목록의 목록

1

가 달려있다 제자리에서 또는 목록 발주자와 함께 새 사본을 원할 때

새 사본의 경우 th , 사람들은`리스트()`의이다 : 전자 기타 대답은 이미, 예를

data = [[8,7], [10,5], [8,10]] 
new = [ sorted(elem) for elem in data ] 
print(new) 
그들에 .sort을 A에 대한 루프를 사용하여 전화에서 현재 위치를 주문하는

에 대한

data = [[8,7], [10,5], [8,10]] 
for elem in data: 
    elem.sort() 
print(data)