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文件中文编码问题
Nov 22 Python
python中requests和https使用简单示例
Jan 18 Python
python基础知识(一)变量与简单数据类型详解
Apr 17 Python
python tkinter canvas使用实例
Nov 04 Python
python实现差分隐私Laplace机制详解
Nov 25 Python
Python 实现OpenCV格式和PIL.Image格式互转
Jan 09 Python
python利用opencv实现SIFT特征提取与匹配
Mar 05 Python
python 链接sqlserver 写接口实例
Mar 11 Python
Python 抓取数据存储到Redis中的操作
Jul 16 Python
Python实例教程之检索输出月份日历表
Dec 16 Python
pycharm 实现光标快速移动到括号外或行尾的操作
Feb 05 Python
pycharm Tab键设置成4个空格的操作
Feb 26 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 json_decode函数详细解析
2014/02/17 PHP
理解php依赖注入和控制反转
2016/05/11 PHP
PHP的RSA加密解密方法以及开发接口使用
2018/02/11 PHP
php 中的信号处理操作实例详解
2020/03/04 PHP
NiftyCube——轻松实现圆角边框
2007/02/20 Javascript
浅析tr的隐藏和显示问题
2014/03/05 Javascript
JavaScript 学习笔记之语句
2015/01/14 Javascript
js获取页面及个元素高度、宽度的代码
2016/04/26 Javascript
js中获取jsp表单中radio类型的值简单实例
2016/08/15 Javascript
nodejs模块nodemailer基本使用-邮件发送示例(支持附件)
2017/03/28 NodeJs
Vue学习笔记进阶篇之多元素及多组件过渡
2017/07/19 Javascript
angular基于ng-alain定义自己的select组件示例
2018/02/23 Javascript
微信小程序手机号码验证功能的实例代码
2018/08/28 Javascript
JS+php后台实现文件上传功能详解
2019/03/02 Javascript
js的新生代垃圾回收知识点总结
2019/08/22 Javascript
React路由鉴权的实现方法
2019/09/05 Javascript
vue项目从node8.x升级到12.x后的问题解决
2019/10/25 Javascript
vue路由 遍历生成复数router-link的例子
2019/10/30 Javascript
js实现简单的秒表
2020/01/16 Javascript
node.js通过Sequelize 连接MySQL的方法
2020/12/28 Javascript
Python中的装饰器用法详解
2015/01/14 Python
pymongo给mongodb创建索引的简单实现方法
2015/05/06 Python
基于Python闭包及其作用域详解
2017/08/28 Python
对Python捕获控制台输出流的方法详解
2019/01/07 Python
Django  ORM 练习题及答案
2019/07/19 Python
Mytheresa中国官网:德国时尚奢侈品商城
2017/08/04 全球购物
日本著名的服饰鞋帽综合类购物网站:MAGASEEK
2019/01/09 全球购物
Footshop乌克兰:运动鞋的最大选择
2019/12/01 全球购物
毕业学生推荐信
2013/12/01 职场文书
信用卡逾期证明示例
2014/09/13 职场文书
离职报告范文
2014/11/04 职场文书
新教师个人工作总结
2015/02/06 职场文书
简历中自我评价范文
2015/03/11 职场文书
五年级语文教学反思
2016/03/03 职场文书
如何用 Python 子进程关闭 Excel 自动化中的弹窗
2021/05/07 Python
使用Python通过企业微信应用给企业成员发消息
2022/04/18 Python