"""
10年积累的网站制作、成都做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有唐河免费网站建设让你可以放心的选择与我们合作。
思路:
STEP 1: 将每个子列表的第二数用列表保存起来 -- values
STEP 2: 将对应的数和其在原数组的相对应的位置下标用一个字典保存起来 --value_position
STEP 3: 将valuse进行排序
STEP 4: 再根据排序后的顺序去value_position 找对应的位置
STEP 5: 根据原位置拿到原来的数,再按顺序将他们放进一个新的列表
STEP 6: 转化成字符串并进行相对应的处理
"""
def mySort(args):
value_position = {}
values = []
position = 0
for e in args:
values.append(e[1])
value_position[e[1]] = position
position+=1
values.sort()
#d = [ value_position.get(key) for key in values]
result = [ ''.join(str(args[p]))for p in [ value_position.get(key) for key in values]]
return ''.join(result).replace('[',' ',).replace(']',',').replace(',',' ') #比较丑,应该有更简单的方法
a = [[1,2],[3,1],[4,0]]
print 'previous list :%s: '%a
print 'post list: %s: '%mySort(a)
操作创建一个很短的回调函数,但又不想用 def 去写一个单行函数, 而是希望通过某个快捷方式以内联方式来创建这个函数。
当一些函数很简单,仅仅只是计算一个表达式的值时,可以使用 lambda 表达式来实现。比如:
使用lambda表达式跟下面定义的函数效果是一样的:
lambda 表达式,典型的使用场景是排序或数据reduce等:
尽管 lambda 表达式允许定义简单函数,但是它的使用是有限制的。只能指定单个表达式,它的值就是最后的返回值。
代码如下:
a=[[1,2],[3,1],[4,0]]
a.sort(key=lambda x:x[1])
b=[]
map(b.extend, a)
print b
labma是一个很强大的函数,lambda允许用户快速定义单行函数,当然用户也可以按照典型的函数定义完成函数;
sort函数主要是用来排序的;
最后使用map函数展开即可。