2014-09-23 81 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]