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

yipeiwu_com6年前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 中类属性共享的问题

感觉这种理解有问题,举个例子来说。 class Dog(object): name = 'dog' def init(self): self.age...

Linux下通过python获取本机ip方法示例

Linux下通过python获取本机ip方法示例

下面介绍在Linux上利用python获取本机ip的方法. 经过网上调查, 发现大致有两种方法, 一种是调用shell脚本,另一种是利用python中的socket等模块来得到,下面是这...

详解Python 序列化Serialize 和 反序列化Deserialize

详解Python 序列化Serialize 和 反序列化Deserialize 序列化 (serialization) 序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是...

简单实现python聊天程序

本文实例为大家分享了简单实现python聊天程序的具体代码,供大家参考,具体内容如下 客户端 #coding:utf-8 import socket, sys host = 'lo...

深入解析Python编程中super关键字的用法

官方文档中关于super的定义说的不是很多,大致意思是返回一个代理对象让你能够调用一些继承过来的方法,查找的机制遵循mro规则,最常用的情况如下面这个例子所示: class C(B)...