"""
10年積累的網(wǎng)站制作、成都做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有唐河免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
思路:
STEP 1: 將每個(gè)子列表的第二數(shù)用列表保存起來 -- values
STEP 2: 將對(duì)應(yīng)的數(shù)和其在原數(shù)組的相對(duì)應(yīng)的位置下標(biāo)用一個(gè)字典保存起來 --value_position
STEP 3: 將valuse進(jìn)行排序
STEP 4: 再根據(jù)排序后的順序去value_position 找對(duì)應(yīng)的位置
STEP 5: 根據(jù)原位置拿到原來的數(shù),再按順序?qū)⑺麄兎胚M(jìn)一個(gè)新的列表
STEP 6: 轉(zhuǎn)化成字符串并進(jìn)行相對(duì)應(yīng)的處理
"""
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(',',' ') #比較丑,應(yīng)該有更簡單的方法
a = [[1,2],[3,1],[4,0]]
print 'previous list :%s: '%a
print 'post list: %s: '%mySort(a)
操作創(chuàng)建一個(gè)很短的回調(diào)函數(shù),但又不想用 def 去寫一個(gè)單行函數(shù), 而是希望通過某個(gè)快捷方式以內(nèi)聯(lián)方式來創(chuàng)建這個(gè)函數(shù)。
當(dāng)一些函數(shù)很簡單,僅僅只是計(jì)算一個(gè)表達(dá)式的值時(shí),可以使用 lambda 表達(dá)式來實(shí)現(xiàn)。比如:
使用lambda表達(dá)式跟下面定義的函數(shù)效果是一樣的:
lambda 表達(dá)式,典型的使用場景是排序或數(shù)據(jù)reduce等:
盡管 lambda 表達(dá)式允許定義簡單函數(shù),但是它的使用是有限制的。只能指定單個(gè)表達(dá)式,它的值就是最后的返回值。
代碼如下:
a=[[1,2],[3,1],[4,0]]
a.sort(key=lambda?x:x[1])
b=[]
map(b.extend,?a)
print?b
labma是一個(gè)很強(qiáng)大的函數(shù),lambda允許用戶快速定義單行函數(shù),當(dāng)然用戶也可以按照典型的函數(shù)定義完成函數(shù);
sort函數(shù)主要是用來排序的;
最后使用map函數(shù)展開即可。