4 回答

TA貢獻(xiàn)1876條經(jīng)驗 獲得超5個贊

TA貢獻(xiàn)1836條經(jīng)驗 獲得超3個贊
{'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}[s[0]]
{'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}[s[1]]
……

TA貢獻(xiàn)1856條經(jīng)驗 獲得超11個贊
def char2num(s):
return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[s]
#[s]里的字符都是字典的key鍵,通過map依次取一個字符來找字典里的key對應(yīng)的value。

TA貢獻(xiàn)1842條經(jīng)驗 獲得超21個贊
我也遇到過同樣的困擾,為何自己直接去用“嘗試1”、“嘗試2”都會報錯呢?(提示:KeyError:'13579')
而程序整體的運行確實十分正確順利,原因就在于對于map()函數(shù)的理解不夠深入:map()函數(shù)接收兩個參數(shù),一個是函數(shù),一個是Iterable,map將傳入的函數(shù)依次作用到序列的每個元素,并把結(jié)果作為新的Iterator返回。
所以‘13579’在map函數(shù)下其實是按生成器一個字符一個字符的進(jìn)行運算的,所以并不會報錯。而直接像樓主那樣的“嘗試1”,“嘗試2”會爆錯也就不奇怪了,{}中并沒有‘13579’這樣的鍵。
添加回答
舉報