python的dict用起來(lái)很方便,可以自定義key值,并通過(guò)下標(biāo)訪(fǎng)問(wèn),示例如下:
>>> d = {'key1':'value1',
... 'key2':'value2',
... 'key3':'value3'}
>>> print d['key2']
value2
>>>
lambda表達(dá)式也是很實(shí)用的東東,示例如下:
>>> f = lambda x : x**2
>>> print f(2)
4
>>>
兩者結(jié)合可以實(shí)現(xiàn)結(jié)構(gòu)相似的函數(shù)調(diào)用,使用起來(lái)很方便,示例如下:
示例一:不帶參數(shù)?
#! /usr/bin/python
?
msgCtrl = "1 : pause\n2 : stop\n3 : restart\nother to quit\n"
?
ctrlMap = {
'1':??? lambda : doPause(),
'2':??? lambda : doStop(),
'3':??? lambda : doRestart()}
?
def doPause():
??????? print 'do pause'
?
def doStop():
??????? print 'do stop'
?
def doRestart():
??????? print 'do restart'
?
if __name__ == '__main__':
??????? while True:
??????????????? print msgCtrl
??????????????? cmdCtrl = raw_input('Input : ')
??????????????? if not ctrlMap.has_key(cmdCtrl):break
??????????????? ctrlMap[cmdCtrl]()
示例二:帶參數(shù)
#! /usr/bin/python
?
msgCtrl = "1 : +\n2 : -\n3 : *\nother to quit\n"
?
ctrlMap = {
'1':??? lambda x,y : x+y,
'2':??? lambda x,y : x-y,
'3':??? lambda x,y : x*y}
?
?
if __name__ == '__main__':
??????? while True:
??????????????? print msgCtrl
??????????????? cmdCtrl = raw_input('Input : ')
??????????????? if not ctrlMap.has_key(cmdCtrl):break
??????????????? print ctrlMap[cmdCtrl](10,2),"\n"
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

