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 正则表达式操作指南
May 04 Python
利用Fn.py库在Python中进行函数式编程
Apr 22 Python
Python判断值是否在list或set中的性能对比分析
Apr 16 Python
python 集合 并集、交集 Series list set 转换的实例
May 29 Python
python itsdangerous模块的具体使用方法
Feb 17 Python
python 实现在shell窗口中编写print不向屏幕输出
Feb 19 Python
Python GUI库PyQt5样式QSS子控件介绍
Feb 25 Python
python属于解释语言吗
Jun 11 Python
python实现PDF中表格转化为Excel的方法
Jun 16 Python
tensorflow 动态获取 BatchSzie 的大小实例
Jun 30 Python
Python3爬虫中pyspider的安装步骤
Jul 29 Python
k-means & DBSCAN 总结
Apr 27 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对象转换为数组函数(递归方法)
2012/02/04 PHP
PHP微信开发之模板消息回复
2016/06/24 PHP
二级域名或跨域共享Cookies的实现方法
2008/08/07 Javascript
javascript实现的网页局布刷新效果
2008/12/01 Javascript
JQuery验证工具类搜集整理
2013/01/16 Javascript
详解Javascript动态操作CSS
2014/12/08 Javascript
JS+CSS实现可拖动的弹出提示框
2015/02/16 Javascript
jQuery使用fadein方法实现渐出效果实例
2015/03/27 Javascript
jQuery通过deferred对象管理ajax异步
2016/05/20 Javascript
Vue.js 表单校验插件
2016/08/14 Javascript
jquery+css3问卷答题卡翻页动画效果示例
2016/10/26 Javascript
基于jquery日历价格、库存等设置插件
2020/07/05 jQuery
详解HTML5 使用video标签实现选择摄像头功能
2017/10/25 Javascript
vue仿element实现分页器效果
2018/09/13 Javascript
深入解析Python中的集合类型操作符
2015/08/19 Python
python实现下载整个ftp目录的方法
2017/01/17 Python
详解Python中的type和object
2018/08/15 Python
python实现在遍历列表时,直接对dict元素增加字段的方法
2019/01/15 Python
python视频按帧截取图片工具
2019/07/23 Python
np.newaxis 实现为 numpy.ndarray(多维数组)增加一个轴
2019/11/30 Python
基于python实现把json数据转换成Excel表格
2020/05/07 Python
python mysql自增字段AUTO_INCREMENT值的修改方式
2020/05/18 Python
Python利用myqr库创建自己的二维码
2020/11/24 Python
tensorflow2.0教程之Keras快速入门
2021/02/20 Python
地球上最先进的胡子和头发修剪器:Bevel
2018/01/23 全球购物
What's the difference between an interface and abstract class? (接口与抽象类有什么区别)
2012/10/29 面试题
同步和异步有何异同,在什么情况下分别使用他们
2013/04/09 面试题
公司庆典邀请函范文
2014/01/13 职场文书
yy婚礼司仪主持词
2014/03/14 职场文书
爱岗敬业演讲稿
2014/05/05 职场文书
电子商务系毕业生自荐信
2014/05/29 职场文书
创先争优宣传标语
2014/10/08 职场文书
2014年监理个人工作总结
2014/12/11 职场文书
教学质量月活动总结
2015/05/11 职场文书
Python实现的扫码工具居然这么好用!
2021/06/07 Python
Nginx配置文件详解以及优化建议指南
2021/09/15 Servers