Re: [問題] 如何能做到字母進位呢?

看板Python作者 (小y寶貝)時間11年前 (2014/12/11 19:30), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/14 (看更多)
※ 引述《opengood5566 ( )》之銘言: : 比如說進行加一: a變b, at變au, az變ba : 請問有甚麼辦法可以做到這樣嗎? : 感謝! 剛好做過,是要把Excel的欄位名稱轉換為數字。 首先做雙向的mapping。 def build_mapping(): a, b = {}, {} for (x,y) in zip('abcdefghijklmnopqrstuvwxyz', [1,2,3,4,5,6,7,8,9,10,11,12,13,14, 15,16,17,18,19,20,21,22,23,24,25,26]): a.udpate({x: y}) b.update({y: x}) return a, b 然後,'at'加一變'au'是這樣做: at = 'at' x, y = build_mapping() ##這行我曾經遇過assignment不成功,請告訴我為什麼 n = reduce(lambda (a,b): a * 10 + b, map(lambda z: x[z], at)) n1 = to_list(n+1, 26) ##把n+1轉換成以1為底,26進位的num list au = string.append(map(lambda n2: y[n2], n1), '') -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.168.162.127 ※ 文章網址: http://www.ptt.cc/bbs/Python/M.1418297456.A.3EF.html
文章代碼(AID): #1KYO1mFl (Python)
討論串 (同標題文章)
文章代碼(AID): #1KYO1mFl (Python)