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中使用第三方库xlrd来写入Excel文件示例
Apr 05 Python
Python抽象类的新写法
Jun 18 Python
Django 忘记管理员或忘记管理员密码 重设登录密码的方法
May 30 Python
python使用正则筛选信用卡
Jan 27 Python
Django框架 信号调度原理解析
Sep 04 Python
python实现宿舍管理系统
Nov 22 Python
基于Tensorflow的MNIST手写数字识别分类
Jun 17 Python
python3 循环读取excel文件并写入json操作
Jul 14 Python
Python配置pip国内镜像源的实现
Aug 20 Python
python 实现一个简单的线性回归案例
Dec 17 Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
Jan 18 Python
Python Django模型详解
Oct 05 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
PHP之生成GIF动画的实现方法
2013/06/07 PHP
PHP编程中的__clone()方法使用详解
2015/11/27 PHP
PHP的时间戳与具体时间转化的简单实现
2016/06/13 PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
2017/11/06 PHP
PHP预定义超全局数组变量小结
2018/08/20 PHP
实例:用 JavaScript 来操作字符串(一些字符串函数)
2007/02/15 Javascript
jquery 单击li防止重复加载的实现代码
2010/12/24 Javascript
中国地区三级联动下拉菜单效果分析
2012/11/15 Javascript
页面js遇到乱码问题的解决方法是和无法转码的情况
2014/04/30 Javascript
Node.js中使用事件发射器模式实现事件绑定详解
2014/08/15 Javascript
Javascript中设置默认参数值示例
2014/09/11 Javascript
使用RequireJS优化JavaScript引用代码的方法
2015/07/01 Javascript
jQuery操作Table技巧大汇总
2016/01/23 Javascript
jQuery实现最简单的切换图效果【可兼容IE6、火狐、谷歌、opera等】
2016/09/04 Javascript
js HTML5手机刮刮乐代码
2020/09/29 Javascript
JavaScript基本类型值-Number类型
2017/02/24 Javascript
解决html input验证只能输入数字,不能输入其他的问题
2017/07/21 Javascript
vue如何获取点击事件源的方法
2017/08/10 Javascript
使用jQuery实现简单的tab框实例
2017/08/22 jQuery
一次Webpack配置文件的分离实战记录
2018/11/30 Javascript
微信小程序实用代码段(收藏版)
2019/12/17 Javascript
解决await在forEach中不起作用的问题
2021/02/25 Javascript
下载python中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决
2018/04/23 Python
Django Rest framework认证组件详细用法
2019/07/25 Python
Python定时器线程池原理详解
2020/02/26 Python
Python中的全局变量如何理解
2020/06/04 Python
htnl5利用svg页面高斯模糊的方法
2018/07/20 HTML / CSS
碧欧泉美国官网:Biotherm美国
2016/08/31 全球购物
护士自荐信范文
2013/12/15 职场文书
计算机通信工程专业毕业生推荐信
2013/12/24 职场文书
工程学毕业生自荐信
2014/06/14 职场文书
党员教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
宇宙与人观后感
2015/06/05 职场文书
感谢师恩主题班会
2015/08/17 职场文书
销区经理年终述职报告模板
2019/11/28 职场文书
mysql中如何用命令创建联合唯一索引
2022/04/20 MySQL