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中threading模块的几个常用方法
Jun 18 Python
Python实现一个简单的验证码程序
Nov 03 Python
用 Python 连接 MySQL 的几种方式详解
Apr 04 Python
实例讲解Python爬取网页数据
Jul 08 Python
Python编程中flask的简介与简单使用
Dec 28 Python
详解Appium+Python之生成html测试报告
Jan 04 Python
linux查找当前python解释器的位置方法
Feb 20 Python
基于PyQt4和PySide实现输入对话框效果
Feb 27 Python
Python第三方库face_recognition在windows上的安装过程
May 03 Python
python对象与json相互转换的方法
May 07 Python
python办公自动化之excel的操作
May 23 Python
Python爬虫基础之初次使用scrapy爬虫实例
Jun 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
外媒评选出10支2020年最受欢迎的Dota2战队
2021/03/05 DOTA
PHP实现的分页类定义与用法示例
2017/07/05 PHP
php实现的表单验证类完整示例
2019/08/13 PHP
VSCode+PHPstudy配置PHP开发环境的步骤详解
2020/08/20 PHP
Nigma vs Liquid BO3 第一场2.13
2021/03/10 DOTA
javascript 必知必会之closure
2009/09/21 Javascript
JQuery开发的数独游戏代码
2010/10/29 Javascript
有趣的JavaScript数组长度问题代码说明
2011/01/20 Javascript
jQuery提交表单ajax查询实例代码
2012/10/07 Javascript
js获取时间(本周、本季度、本月..)
2013/11/22 Javascript
javascript时间排序算法实现活动秒杀倒计时效果
2021/01/28 Javascript
关于Javascript中defer和async的区别总结
2016/09/20 Javascript
jQuery中值得注意的trigger方法浅析
2016/12/12 Javascript
EsLint入门学习教程
2017/02/17 Javascript
react router 4.0以上的路由应用详解
2017/09/21 Javascript
Vue.js组件通信的几种姿势
2017/10/23 Javascript
详解使用vue-admin-template的优化历程
2018/05/20 Javascript
微信小程序通过一个json实现分享朋友圈图片
2019/09/03 Javascript
webpack4 配置 ssr 环境遇到“document is not defined”
2019/10/24 Javascript
Vue中强制组件重新渲染的正确方法
2021/01/03 Vue.js
python中scikit-learn机器代码实例
2018/08/05 Python
使用Python如何测试InnoDB与MyISAM的读写性能
2018/09/18 Python
python读取TXT每行,并存到LIST中的方法
2018/10/26 Python
详解PANDAS 数据合并与重塑(join/merge篇)
2019/07/09 Python
Python CSV文件模块的使用案例分析
2019/12/21 Python
Django Admin设置应用程序及模型顺序方法详解
2020/04/01 Python
python实现xml转json文件的示例代码
2020/12/30 Python
iRobot官网:改变生活的家用机器人品牌
2016/09/20 全球购物
十佳班主任事迹材料
2014/01/18 职场文书
党员公开承诺书和承诺事项
2014/03/25 职场文书
普通党员群众路线教育实践活动心得体会
2014/11/04 职场文书
2014年度培训工作总结
2014/11/27 职场文书
人事主管岗位职责
2015/02/04 职场文书
2015年环保局工作总结
2015/05/22 职场文书
社区服务活动感想
2015/08/11 职场文书
python 调用js的四种方式
2021/04/11 Python