python字典序問(wèn)題實(shí)例
本文實(shí)例講述了python字典序問(wèn)題,分享給大家供大家參考。具體如下:
問(wèn)題描述:
將字母從左向右的次序與字母表中的次序相同,且每個(gè)字符最大出現(xiàn)一次..例如:a,b,ab,bc,xyz等都是升序的字符串.現(xiàn)對(duì)字母表A產(chǎn)生的所有長(zhǎng)度不超過(guò)6的升序字符串按照字典充排列并編碼如下:
| 1 | 2 | .. | 26 | 27 | 28 | ... |
| a | b | .. | z | ab | ac | .. |
對(duì)一個(gè)升序字符串,迅速計(jì)算出它在上述字典中的編碼。
實(shí)現(xiàn)代碼如下:
import string
all_letter = string.ascii_lowercase
def gen_dict():
result = {}
list_num_one = [ a_letter for a_letter in all_letter ]
list_num_two = [ i + j for i in all_letter for j in all_letter[all_letter.find(i)+1:]]
list_num_three = [ i + j + k for i in all_letter
for j in all_letter[all_letter.find(i)+1:]
for k in all_letter[all_letter.find(j)+1:]]
list_num_four = [ i + j + k + l for i in all_letter
for j in all_letter[all_letter.find(i)+1:]
for k in all_letter[all_letter.find(j)+1:]
for l in all_letter[all_letter.find(k)+1:]]
list_num_five = [ i + j + k + l + m for i in all_letter
for j in all_letter[all_letter.find(i)+1:]
for k in all_letter[all_letter.find(j)+1:]
for l in all_letter[all_letter.find(k)+1:]
for m in all_letter[all_letter.find(l)+1:]]
list_num_six = [ i + j + k + l + m + n for i in all_letter
for j in all_letter[all_letter.find(i)+1:]
for k in all_letter[all_letter.find(j)+1:]
for l in all_letter[all_letter.find(k)+1:]
for m in all_letter[all_letter.find(l)+1:]
for n in all_letter[all_letter.find(m)+1:]
]
for key,value in enumerate(list_num_one + list_num_two + list_num_three + list_num_four + list_num_five + list_num_six):
result.setdefault(key+1,value)
return result
my_dict = gen_dict()
value_to_get = 'abcdef'
for key,value in my_dict.iteritems():
if value == value_to_get:
print key
結(jié)果:83682
即abcdef在字典中的編碼。
希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
Python運(yùn)算符優(yōu)先級(jí)詳細(xì)整理
在一個(gè)表達(dá)式中可能包含多個(gè)有不同運(yùn)算符連接起來(lái)的、具有不同數(shù)據(jù)類型的數(shù)據(jù)對(duì)象,由于表達(dá)式有多種運(yùn)算,不同的運(yùn)算順序可能得出不同結(jié)果甚至出現(xiàn)錯(cuò)誤運(yùn)算錯(cuò)誤,下面這篇文章主要給大家介紹了關(guān)于Python運(yùn)算符優(yōu)先級(jí)的相關(guān)資料,需要的朋友可以參考下2023-01-01
Python數(shù)據(jù)庫(kù)安裝及MySQL?Connector應(yīng)用教程
這篇文章主要為大家介紹了Python數(shù)據(jù)庫(kù)安裝及MySQL Connector應(yīng)用教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5 UI主線程與耗時(shí)線程分離詳細(xì)方法實(shí)例
這篇文章主要介紹了python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5 UI主線程與耗時(shí)線程分離詳細(xì)方法實(shí)例,需要的朋友可以參考下2020-02-02
解決Keras自帶數(shù)據(jù)集與預(yù)訓(xùn)練model下載太慢問(wèn)題
這篇文章主要介紹了解決Keras自帶數(shù)據(jù)集與預(yù)訓(xùn)練model下載太慢問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06
在Qt5和PyQt5中設(shè)置支持高分辨率屏幕自適應(yīng)的方法
今天小編就為大家分享一篇在Qt5和PyQt5中設(shè)置支持高分辨率屏幕自適應(yīng)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06
python神經(jīng)網(wǎng)絡(luò)Xception模型復(fù)現(xiàn)詳解
這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)Xception模型復(fù)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05

