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模块简介之有序字典(OrderedDict)
Dec 01 Python
Python基于最小二乘法实现曲线拟合示例
Jun 14 Python
python原类、类的创建过程与方法详解
Jul 19 Python
TensorFlow内存管理bfc算法实例
Feb 03 Python
django3.02模板中的超链接配置实例代码
Feb 04 Python
Python猜数字算法题详解
Mar 01 Python
Jupyter Notebook的连接密码 token查询方式
Apr 21 Python
部署Django到阿里云服务器教程示例
Jun 03 Python
Python paramiko使用方法代码汇总
Nov 20 Python
python 中 .py文件 转 .pyd文件的操作
Mar 04 Python
Django如何创作一个简单的最小程序
May 12 Python
用python画城市轮播地图
May 28 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脚本的10个技巧(5)
2006/10/09 PHP
dwr spring的集成实现代码
2009/03/22 Javascript
十个优秀的Ajax/Javascript实例网站收集
2010/03/31 Javascript
JSON 和 JavaScript eval使用说明
2010/06/13 Javascript
日历查询的算法 如何计算某一天是星期几
2012/12/12 Javascript
cocos2dx骨骼动画Armature源码剖析(三)
2015/09/08 Javascript
Bootstrap精简教程
2015/11/27 Javascript
CSS中position属性之fixed实现div居中
2015/12/14 Javascript
JS代码防止SQL注入的方法(超简单)
2016/04/12 Javascript
JS图片定时翻滚效果实现方法
2016/06/21 Javascript
jQuery动态改变多行文本框高度的方法
2016/09/07 Javascript
js html5 css俄罗斯方块游戏再现
2016/10/17 Javascript
Javascript中关于Array.filter()的妙用详解
2016/12/04 Javascript
JS实现拖拽的方法分析
2016/12/20 Javascript
Javascript设计模式之装饰者模式详解篇
2017/01/17 Javascript
jQuery实现大图轮播
2017/02/13 Javascript
iOS + node.js使用Socket.IO框架进行实时通信示例
2017/04/14 Javascript
用Vue.extend构建消息提示组件的方法实例
2017/08/08 Javascript
JavaScript数据结构之单链表和循环链表
2017/11/28 Javascript
jquery引入外部CDN 加载失败则引入本地jq库
2018/05/23 jQuery
vue.js内置组件之keep-alive组件使用
2018/07/10 Javascript
教你使用vue-cli快速构建的小说阅读器
2019/05/13 Javascript
vue打开其他项目页面并传入数据详解
2020/11/25 Vue.js
用Python写王者荣耀刷金币脚本
2017/12/21 Python
ubuntu环境下python虚拟环境的安装过程
2018/01/07 Python
PyTorch中permute的用法详解
2019/12/30 Python
pip安装提示Twisted错误问题(Python3.6.4安装Twisted错误)
2020/05/09 Python
python实现数学模型(插值、拟合和微分方程)
2020/11/13 Python
J2EE面试题
2016/03/14 面试题
2014年党员公开承诺书范文
2014/03/28 职场文书
个人公司授权委托书范本
2014/10/12 职场文书
工作失职检讨书范文
2015/05/05 职场文书
2019年预备党员的思想汇报:加深对党的认知
2019/09/25 职场文书
python获取淘宝服务器时间的代码示例
2021/04/22 Python
详解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
2021/04/25 Python
教你怎么用Python生成九宫格照片
2021/05/20 Python