2016-08-14 3 views
1

두 개의 목록을 에 따라 a에 따라 정렬하고 두 개의 정렬 된 목록을 아래에서 정확하게 수행 한대로 다시 반환하는 것이 정확합니다.목록 정렬 - pythonic 방법

a = ['apple','carrot','banana'] 
b = [5,10,15] 

s = sorted(zip(a,b)) 
a,b = map(list, zip(*s)) 

print a 
print b 

['apple', 'banana', 'carrot'] 
[5, 15, 10] 

하지만 더 좋은 방법은 없나요? Given condition: Two lists, a and b. Result: As printed above

PS 이것은 파이썬 2.7

답변

1

내가 map에 혐오감을 가지고 있기 때문에 나는이 방법으로 그것을 할 것입니다,하지만 그것은 분명히 당신의 방법보다 우수하지 않다. 필자의 이유는 목록 작성은 대부분의 Python 프로그래머가 쉽게 이해할 수 있지만 기능 프로그래밍 개념은 그다지 중요하지 않습니다. 언어가 함수 프로그래밍을 위해 실제로 설정되지 않았기 때문입니다.

In [6]: a = ['apple','carrot','banana'] 

In [7]: b = [5,10,15] 

In [8]: A, B = (list(e) for e in zip(*sorted(zip(a,b)))) 

In [9]: A 
Out[9]: ['apple', 'banana', 'carrot'] 

In [10]: B 
Out[10]: [5, 15, 10]