python字典序问题实例
本文实例讲述了python字典序问题,分享给大家供大家参考。具体如下:
问题描述:
将字母从左向右的次序与字母表中的次序相同,且每个字符最大出现一次..例如:a,b,ab,bc,xyz等都是升序的字符串.现对字母表A产生的所有长度不超过6的升序字符串按照字典充排列并编码如下:
1
2
..
26
27
28
...
a
b
..
z
ab
ac
..
实现代码如下:
importstring all_letter=string.ascii_lowercase defgen_dict(): result={} list_num_one=[a_letterfora_letterinall_letter] list_num_two=[i+jforiinall_letterforjinall_letter[all_letter.find(i)+1:]] list_num_three=[i+j+kforiinall_letter forjinall_letter[all_letter.find(i)+1:] forkinall_letter[all_letter.find(j)+1:]] list_num_four=[i+j+k+lforiinall_letter forjinall_letter[all_letter.find(i)+1:] forkinall_letter[all_letter.find(j)+1:] forlinall_letter[all_letter.find(k)+1:]] list_num_five=[i+j+k+l+mforiinall_letter forjinall_letter[all_letter.find(i)+1:] forkinall_letter[all_letter.find(j)+1:] forlinall_letter[all_letter.find(k)+1:] forminall_letter[all_letter.find(l)+1:]] list_num_six=[i+j+k+l+m+nforiinall_letter forjinall_letter[all_letter.find(i)+1:] forkinall_letter[all_letter.find(j)+1:] forlinall_letter[all_letter.find(k)+1:] forminall_letter[all_letter.find(l)+1:] forninall_letter[all_letter.find(m)+1:] ] forkey,valueinenumerate(list_num_one+list_num_two+list_num_three+list_num_four+list_num_five+list_num_six): result.setdefault(key+1,value) returnresult my_dict=gen_dict() value_to_get='abcdef' forkey,valueinmy_dict.iteritems(): ifvalue==value_to_get: printkey
结果:83682
即abcdef在字典中的编码。
希望本文所述对大家的Python程序设计有所帮助。