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命令行参数sys.argv使用示例
Jan 28 Python
python 上下文管理器使用方法小结
Oct 10 Python
Python定时器实例代码
Nov 01 Python
Python 批量合并多个txt文件的实例讲解
May 08 Python
Python实现的各种常见分布算法示例
Dec 13 Python
python后端接收前端回传的文件方法
Jan 02 Python
使用Python检测文章抄袭及去重算法原理解析
Jun 14 Python
python web框架 django wsgi原理解析
Aug 20 Python
python 实现Flask中返回图片流给前端展示
Jan 09 Python
PyQt5实现画布小程序
May 30 Python
Python绘制组合图的示例
Sep 18 Python
Jupyter安装拓展nbextensions及解决官网下载慢的问题
Mar 03 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+mysql实现无限分类实例详解
2015/01/15 PHP
PHP从零开始打造自己的MVC框架之类的自动加载实现方法详解
2019/06/03 PHP
Laravel框架查询构造器 CURD操作示例
2019/09/04 PHP
php 中self,this的区别和操作方法实例分析
2019/11/04 PHP
Javascript 获取LI里的内容
2008/12/17 Javascript
dojo学习第一天 Tab选项卡 实现
2011/08/28 Javascript
dotopAlert 提示用户需安装播放器的代码
2012/09/17 Javascript
js 操作select与option(示例讲解)
2013/12/20 Javascript
jquery ajax 局部无刷新更新数据的实现案例
2014/02/08 Javascript
倒记时60刷新网页的js代码
2014/02/18 Javascript
JavaScript调试技巧之console.log()详解
2014/03/19 Javascript
使用jQuery实现input数值增量和减量的方法
2015/01/24 Javascript
jQuery菜单插件用法实例
2015/07/25 Javascript
AngularJS 中的指令实践开发指南(一)
2016/03/20 Javascript
MUI 上拉刷新/下拉加载功能实例代码
2017/04/13 Javascript
jquery 禁止鼠标右键并监听右键事件
2017/04/27 jQuery
Require.js的基本用法详解
2017/07/03 Javascript
vue-cli实现多页面多路由的示例代码
2018/01/30 Javascript
layui表格分页 记录勾选的实例
2019/09/02 Javascript
[50:12]EG vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
[46:23]OG vs EG 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
在Python中利用Into包整洁地进行数据迁移的教程
2015/03/30 Python
python动态网页批量爬取
2016/02/14 Python
10 行Python 代码实现 AI 目标检测技术【推荐】
2019/06/14 Python
基于python分析你的上网行为 看看你平时上网都在干嘛
2019/08/13 Python
python实现发送form-data数据的方法详解
2019/09/27 Python
Python提取视频中图片的示例(按帧、按秒)
2020/10/22 Python
大码女装:Ulla Popken
2019/08/06 全球购物
Yahoo的PHP面试题
2014/05/26 面试题
行政助理的职责
2013/11/14 职场文书
海飞丝的广告词
2014/03/20 职场文书
文秘应届生求职信
2014/07/05 职场文书
喝酒驾驶检讨书
2014/10/01 职场文书
党的群众路线教育实践活动查摆问题自查报告
2014/10/10 职场文书
2015年女生节活动总结
2015/02/27 职场文书
中秋节寄语2015
2015/03/24 职场文书