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程序设计有所帮助。
热门推荐
10 古风考试祝福语 唯美简短
11 婆婆66岁祝福语简短
12 晚安好梦祝福语简短
13 小朋友上学祝福语简短
14 作文老师寄语简短祝福语
15 对银行的祝福语简短
16 简短生日祝福语女朋友
17 平安果祝福语简短霸气
18 中秋骚气祝福语简短情人