2016-08-14 2 views
1

aに従って2つのリストにソートし、2つのソートされたリストを別々に戻します。リストを並べ替える - ピジョンソニック

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は、これは、Python 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] 
関連する問題