python字典序问题实例


Posted in Python onSeptember 26, 2014

本文实例讲述了python字典序问题,分享给大家供大家参考。具体如下:

问题描述:

将字母从左向右的次序与字母表中的次序相同,且每个字符最大出现一次..例如:a,b,ab,bc,xyz等都是升序的字符串.现对字母表A产生的所有长度不超过6的升序字符串按照字典充排列并编码如下:

1 2 .. 26 27 28 ...
a b .. z ab ac ..

对一个升序字符串,迅速计算出它在上述字典中的编码。

实现代码如下:

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

结果:83682

即abcdef在字典中的编码。

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
python清除字符串里非字母字符的方法
Jul 02 Python
基于numpy.random.randn()与rand()的区别详解
Apr 17 Python
ubuntu16.04制作vim和python3的开发环境
Sep 23 Python
Python 串口读写的实现方法
Jun 12 Python
python和c语言的主要区别总结
Jul 07 Python
python pandas 时间日期的处理实现
Jul 30 Python
Python中的相关分析correlation analysis的实现
Aug 29 Python
Python 获取指定文件夹下的目录和文件的实现
Aug 30 Python
Python异常模块traceback用法实例分析
Oct 22 Python
Django关于admin的使用技巧和知识点
Feb 10 Python
经验丰富程序员才知道的8种高级Python技巧
Jul 27 Python
Python 语言实现六大查找算法
Jun 30 Python
python计算书页码的统计数字问题实例
Sep 26 #Python
python实现从web抓取文档的方法
Sep 26 #Python
python实现udp数据报传输的方法
Sep 26 #Python
python使用Berkeley DB数据库实例
Sep 26 #Python
python实现通过shelve修改对象实例
Sep 26 #Python
python实现在pickling的时候压缩的方法
Sep 25 #Python
python使用cPickle模块序列化实例
Sep 25 #Python
You might like
WIN98下Apache1.3.14+PHP4.0.4的安装
2006/10/09 PHP
php数组函数序列之array_slice() - 在数组中根据条件取出一段值,并返回
2011/11/07 PHP
onpropertypchange
2006/07/01 Javascript
TBCompressor js代码压缩
2011/01/05 Javascript
JQquery的一些使用心得分享
2012/08/01 Javascript
Extjs4中Form的使用之本地hiddenfield
2013/11/26 Javascript
jQuery操作select下拉框的text值和value值的方法
2014/05/31 Javascript
JavaScript代码复用模式详解
2014/11/07 Javascript
javascript先序遍历DOM树的方法
2016/02/27 Javascript
jQuery 3.0十大新特性
2016/07/06 Javascript
AngularJS入门教程之ng-class 指令用法
2016/08/01 Javascript
js完整倒计时代码分享
2016/09/18 Javascript
微信小程序 UI与容器组件总结
2017/02/21 Javascript
vue中改变选中当前项的显示隐藏或者状态的实现方法
2018/02/08 Javascript
vue使用自定义icon图标的方法
2018/05/14 Javascript
微信小程序canvas拖拽、截图组件功能
2018/09/04 Javascript
VsCode与Node.js知识点详解
2019/09/05 Javascript
JS typeof fn === 'function' && fn()详解
2020/08/22 Javascript
jquery插件懒加载的示例
2020/10/24 jQuery
用Python制作简单的钢琴程序的教程
2015/04/01 Python
TensorFlow 滑动平均的示例代码
2018/06/19 Python
python使用pymongo操作mongo的完整步骤
2019/04/13 Python
Python使用type关键字创建类步骤详解
2019/07/23 Python
python+rsync精确同步指定格式文件
2019/08/29 Python
python GUI库图形界面开发之PyQt5线程类QThread详细使用方法
2020/02/26 Python
Python Socketserver实现FTP文件上传下载代码实例
2020/03/27 Python
Wilson体育用品官网:美国著名运动器材品牌
2019/05/12 全球购物
美国滑板店:Tactics
2020/11/08 全球购物
公务员总结性个人自我评价
2013/12/05 职场文书
2014年社区居委会主任重阳节讲话稿
2014/09/25 职场文书
春节随笔
2015/08/15 职场文书
关于React Native 无法链接模拟器的问题
2021/06/21 Javascript
WINDOWS 64位 下安装配置mysql8.0.25最详细的教程
2022/03/22 MySQL
python函数的两种嵌套方法使用
2022/04/02 Python
Innodb存储引擎中的后台线程详解
2022/04/03 MySQL
零基础学java之循环语句的使用
2022/04/10 Java/Android