python实现按首字母分类查找功能

yipeiwu_com7年前Python基础

本文实例为大家分享了python实现按首字母分类查找的具体代码,供大家参考,具体内容如下

要求:

1.自己查找一些英文词汇,存储到某个容器类中
2.根据英文词汇的首字母进行分类,类似于手机通讯簿中的快速查找功能
3.根据用户输入的字母,找到该字母开头的所有单词

#coding=utf-8
lexicons=["the","be","of","and","A","to","in","he","have","it","that","for","they","I","with","as","not","on","she","at","by","this","we","you","do","but","from","or","which","one","would","all","will","there","say","who","make","when","can"]
while True:
 startLetter=raw_input("输入一个字母,列出所有以此字母开头的单词:")
 if len(startLetter)!=1:
 print "必须是一个字母"
 else:
 reLexicons=[] #结果列表
 for x in xrange(len(lexicons)):
  lexicon=lexicons[x]
  if lexicon[0].lower()==startLetter.lower():#都转为小写后比较 开头字母不区分大小写
  reLexicons.append(lexicon)
 if len(reLexicons)==0:
  print "没有结果"
 else:
  for x in xrange(len(reLexicons)):
  print reLexicons[x]

上面的代码没有走第二步,如下代码 使用字典解决第二步

#coding=utf-8
'''
边遍历,边构造 key value 
'''
lexicons=["the","be","of","and","A","to","in","he","have","it","that","for","they","I","with","as","not","on","she","at","by","this","we","you","do","but","from","or","which","one","would","all","will","there","say","who","make","when","can"]
lexiconDict={}
#分类 保存字典中
lexiconLen=len(lexicons)
for x in xrange(len(lexicons)):
 lexicon=lexicons[x]
 startLetter=lexicon[0]
 dictLexicons=lexiconDict.get(startLetter,[])
  #空列表说明没有Key 则添加Key 否则追加Key对应的Value
 if len(dictLexicons)==0:
 lexiconDict[startLetter]=[lexicons[x]]
 else:
 dictLexicons.append(lexicons[x])
while True:
 startLetter=raw_input("输入一个字母,列出所有以此字母开头的单词:")
 if len(startLetter)!=1:
 print "必须是一个字母"
 else:
 lexicons=lexiconDict.get(startLetter.lower(),[])
 if len(lexicons)==0:
  print "没有结果"
 else:
  for x in lexicons:
  print x

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python 十六进制整数与ASCii编码字符串相互转换方法

在使用Pyserial与STM32进行通讯时,遇到了需要将十六进制整数以Ascii码编码的字符串进行发送并且将接收到的Ascii码编码的字符串转换成十六进制整型的问题。查阅网上的资料后,...

python的random模块及加权随机算法的python实现方法

random是用于生成随机数的,我们可以利用它随机生成数字或者选择字符串。 •random.seed(x)改变随机数生成器的种子seed。 一般不必特别去设定seed,Pyt...

利用python生成一个导出数据库的bat脚本文件的方法

实例如下: # 环境: python3.x def getExportDbSql(db, index): # 获取导出一个数据库实例的sql语句 sql = 'mysqldu...

Python的Asyncore异步Socket模块及实现端口转发的例子

Asyncore模块提供了以异步的方式写入套接字服务客户端和服务器的基础结构。 只有两种方式使一个程序在单处理器上实现“同时做不止一件事”。多线程编程是最简单和最流行的方式,但是有另一种...

python opencv 批量改变图片的尺寸大小的方法

python opencv 批量改变图片的尺寸大小的方法

我目标文件夹下有一大批图片,我要把它转变为指定尺寸大小的图片,用pthon和opencv实现的。 以上为原图片。 import cv2 import os # 按指定图像大小调整尺...