2014-09-23 56 views
0
a=[3.0,2.5,1.0,'1/3','4/5'] 

我想排序該陣列中,我試圖轉換字符串另一個數組即,排序與字符串的數組和浮法

a[3]=['1','3'] 

然後將它們轉換爲浮起並然後執行除法。問題是,它成爲當我使用a.sort對它們進行排序比較複雜,我不知道如何把他們帶回自己的字符串形式 我需要知道如何在這個沒有導入分數模塊

請幫助。

回答

3

您不需要將其轉換回來。使用key參數(函數)sorted,list.sort。鍵功能的返回值將用於比較。

>>> def key(n): 
...  if isinstance(n, str): 
...   a, b = map(float, n.split('/')) 
...   n = a/b 
...  return n 
... 
>>> a = [3.0,2.5,1.0,'1/3','4/5'] 
>>> sorted(a, key=key) 
['1/3', '4/5', 1.0, 2.5, 3.0]