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 相关文章推荐
sqlalchemy对象转dict的示例
Apr 22 Python
Python标准库defaultdict模块使用示例
Apr 28 Python
Python3读取zip文件信息的方法
May 22 Python
深入学习Python中的上下文管理器与else块
Aug 27 Python
Python单向链表和双向链表原理与用法实例详解
Aug 31 Python
python自动化之Ansible的安装教程
Jun 13 Python
Python企业编码生成系统总体系统设计概述
Jul 26 Python
Python Pandas数据中对时间的操作
Jul 30 Python
在Django中实现添加user到group并查看
Nov 18 Python
python NumPy ndarray二维数组 按照行列求平均实例
Nov 26 Python
Python用摘要算法生成token及检验token的示例代码
Dec 01 Python
jupyter 添加不同内核的操作
Feb 06 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
PHP5在Apache下的两种模式的安装
2006/09/05 PHP
一个从别的网站抓取信息的例子(域名查询)
2006/10/09 PHP
初学CAKEPHP 基础教程
2009/11/02 PHP
基于命令行执行带参数的php脚本并取得参数的方法
2016/01/25 PHP
Yii核心验证器api详解
2016/11/23 PHP
php生成HTML文件的类方法
2019/10/11 PHP
JS学习之一个简易的日历控件
2010/03/24 Javascript
Jquery网页出现的乱码问题的三种解决方法
2013/06/30 Javascript
JavaScript数据结构与算法之栈详解
2015/03/12 Javascript
jquery图片滚动放大代码分享(2)
2015/08/28 Javascript
javascript创建含数字字母的随机字符串方法总结
2016/08/01 Javascript
javascript宿主对象之window.navigator详解
2016/09/07 Javascript
基于jQuery实现火焰灯效果导航菜单
2017/01/04 Javascript
JavaScript 上传文件(psd,压缩包等),图片,视频的实现方法
2017/06/19 Javascript
Angularjs中数据绑定的实例详解
2017/08/25 Javascript
基于p5.js 2D图像接口的扩展(交互实现)
2020/11/30 Javascript
python实现kNN算法
2017/12/20 Python
Python实现的井字棋(Tic Tac Toe)游戏示例
2018/01/31 Python
Python切片工具pillow用法示例
2018/03/30 Python
python networkx 包绘制复杂网络关系图的实现
2019/07/10 Python
解决pytorch DataLoader num_workers出现的问题
2020/01/14 Python
Tensorflow tf.tile()的用法实例分析
2020/05/22 Python
Python如何操作docker redis过程解析
2020/08/10 Python
python中字符串的编码与解码详析
2020/12/03 Python
eBay英国购物网站:eBay.co.uk
2019/06/19 全球购物
KELLER SPORTS荷兰:在线订购最好的运动产品
2020/10/13 全球购物
Java如何读取CLOB字段
2013/10/10 面试题
国旗下的演讲稿
2014/05/08 职场文书
节能标语大全
2014/06/21 职场文书
护士求职信
2014/07/05 职场文书
专题组织生活会发言材料
2014/10/17 职场文书
面试通知单大全
2015/04/20 职场文书
自荐信范文
2019/05/20 职场文书
Python通过m3u8文件下载合并ts视频的操作
2021/04/16 Python
Python基础之元类详解
2021/04/29 Python
Golang日志包的使用
2022/04/20 Golang