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实现的阳历转阴历(农历)算法
Apr 25 Python
python操作mysql数据库
Mar 05 Python
python实现媒体播放器功能
Feb 11 Python
python3+PyQt5实现文档打印功能
Apr 24 Python
python实现机器学习之多元线性回归
Sep 06 Python
对python3中pathlib库的Path类的使用详解
Oct 14 Python
numpy.where() 用法详解
May 27 Python
tensorflow 变长序列存储实例
Jan 20 Python
tensorflow实现二维平面模拟三维数据教程
Feb 11 Python
Pycharm激活方法及详细教程(详细且实用)
May 12 Python
Python devel安装失败问题解决方案
Jun 09 Python
python中HTMLParser模块知识点总结
Jan 25 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&java(一)
2006/10/09 PHP
PHP实现域名whois查询的代码(数据源万网、新网)
2010/02/22 PHP
高质量PHP代码的50个实用技巧必备(上)
2016/01/22 PHP
PHP设计模式之观察者模式实例
2016/02/22 PHP
PHP删除二维数组中相同元素及数组重复值的方法示例
2017/05/05 PHP
tp5框架基于ajax实现异步删除图片的方法示例
2020/02/10 PHP
一个选择最快的服务器转向代码
2009/04/27 Javascript
AJAX的跨域与JSONP(为文章自动添加短址的功能)
2010/01/17 Javascript
Javascript图像处理—平滑处理实现原理
2012/12/28 Javascript
原生javascript实现的分页插件pagenav
2014/08/28 Javascript
JS实现随页面滚动显示/隐藏窗口固定位置元素
2016/02/26 Javascript
request请求获取参数的实现方法(post和get两种方式)
2016/09/27 Javascript
js验证手机号、密码、短信验证码代码工具类
2020/06/24 Javascript
图片上传之FileAPI与NodeJs
2017/01/24 NodeJs
canvas实现环形进度条效果
2017/03/23 Javascript
Express URL跳转(重定向)的实现方法
2017/04/07 Javascript
js操作二进制数据方法
2018/03/03 Javascript
JS闭包经典实例详解
2018/12/20 Javascript
小程序实现分类页
2019/07/12 Javascript
js使用文件流下载csv文件的实现方法
2019/07/15 Javascript
js实现列表向上无限滚动
2020/01/13 Javascript
js实现无缝轮播图插件封装
2020/07/31 Javascript
[01:30:55]VG vs Mineski Supermajor 败者组 BO3 第三场 6.6
2018/06/07 DOTA
python和flask中返回JSON数据的方法
2018/03/26 Python
python+numpy+matplotalib实现梯度下降法
2018/08/31 Python
Python3爬取英雄联盟英雄皮肤大图实例代码
2018/11/14 Python
Python中关于浮点数的冷知识
2019/09/22 Python
Python字符串格式化f-string多种功能实现
2020/05/07 Python
Python二元算术运算常用方法解析
2020/09/15 Python
美国女性奢华品牌精品店:INTERMIX
2017/10/12 全球购物
印度最大的网上花店:Ferns N Petals(鲜花、礼品和蛋糕)
2017/10/16 全球购物
需求分析说明书
2014/05/09 职场文书
2014年车间工作总结
2014/11/21 职场文书
新员工试用期自我评价
2015/03/10 职场文书
2015年社区纪检工作总结
2015/04/21 职场文书
Ajax异步刷新功能及简单案例
2021/11/20 Javascript