初学python案例 字典

发布时间:2019-09-15 09:57:05编辑:auto阅读(1492)

    案例描述:

        员工信息表存储在一个文件中,将信息表存储成字典,然后对字典进行模糊查询,查询到的数据进行高亮显示。


    例如输入  邹元武 ,输出匹配到的信息,并将其高亮显示

    wKiom1Yi7MeTVmVTAABcBPuV8qM588.jpg




    员工信息表:

    001 黎伟晔 420822195711199638 男 15201100451 销售部
    002 冉阳云 15220219600224649X 男 15201100294 营销部
    003 戎星文 341622195805212151 男 18810670117 技术部
    004 甘浩博 140121195102222474 男 18810670215 销售部
    005 麻华采 441303197609100352 男 18810670725 销售部
    006 邹元武 63260019690928499X 男 18810680630 营销部
    007 艾永言 330402196603111251 男 18810670205 人事部
    008 濮弘新 513323196105270594 男 18810670921 人事部
    009 伍奇希 421221195210091399 男 18810670012 技术部
    010 容星晖 530181195810260390 男 18810670831 销售部
    011 郁弘义 321081197709170759 男 18810670621 销售部
    012 薛德辉 520425196105294710 男 13811552410 人事部
    013 黎浦泽 371311195908161895 男 13811552475 营销部
    014 冉子明 42060619751006791X 男 13811131403 财务部
    015 阳苑博 530422196503303232 男 13811131436 销售部
    016 阎凯复 211324195506015411 男 15801261316 技术部
    017 娄英范 511822195703255452 男 15801352037 销售部
    018 沃子晋 61102319790912877X 男 15801352337 技术部
    019 石恺乐 110114195204183630 男 15801351327 技术部
    020 诸高杰 140925196409181113 男 15801351821 人事部
    021 衡学文 320922196702024496 男 15801350172 技术部
    022 赖星河 320503197401017034 男 15801350631 财务部
    023 惠  震 370883198612147252 男 15801261256 销售部
    024 顾  含 370883199206185813 男 15801350061 销售部
    025 刘  志 370883198810201731 男 15801260621 营销部
    026 李  宾 370902197010231230 男 15801260776 技术部
    027 刘  杰 37030219850503031X 男 15801259625 人事部
    028 魏  伟 370883198502284416 男 15801260367 技术部
    029 刘  浩 371329199001291538 男 15801258397 技术部
    030 张志胜 370825198209105136 男 15801258907 财务部
    031 徐福朝 370825196902276918 男 15801256982 人事部
    032 戎婉仪 32010119801024650X 女 15801257720 人事部
    033 靳智纯 361022195601211625 女 15801252537 营销部
    034 胡浩岚 650108195909078249 女 15801256657 销售部
    035 苍新梅 450126196204219443 女 15801251056 技术部
    036 严芳泽 310230197103310487 女 15801251596 人事部
    037 靳和玉 130121197108088744 女 15801250787 人事部
    038 易凝雪 530124197109237880 女 13601387214 人事部
    039 昝宛白 371424197008263323 女 13701123426 技术部
    040 宿晴雪 130227195807253141 女 13810922382 人事部
    041 宣娜兰 13028319650214664X 女 13810922362 人事部
    042 冯傲雪 350428197704167088 女 13811709872 技术部
    043 欧和悌 330421196908257787 女 13811677875 销售部
    044 夔绮玉 445302196309216065 女 13811707273 营销部
    045 刘诗兰 430501195606042341 女 13811709581 技术部
    046 蒯芳茵 370601195404094505 女 13811659813 营销部
    047 公清妙 542129195112017922 女 13811677582 营销部
    048 花舒方 440115197607167047 女 13811677593 技术部


    python 代码:

    import sys
    
    tables = {}
    print '员工信息表'
    f = open('dict.txt')
    for i in f.readlines():         # 将其存入字典
        value = i.split()
        tables[value[0]] = value[1:]
    
    for k, v in tables.items():    # 将字典内容输出
        a = k + ' '
        for i in v:
            a = a + i + ' '
        print a
    
    print
    f.close()
    
    while True:
        value = raw_input('请输入需要搜索的内容 > ')
        if len(value) != 0:
            x = 0   # 计数器
            for k, v in tables.items():     # 这里需要将字典转换为字符串,因为只有字符串才能够使用 find()函数
                a = k + ' '
                for i in v:
                    a = a + i + ' '
                if a.find(value) != -1:
                    index = a.find(value)
                    content = a[:index] + '\033[1;31;40m%s\033[0m' % value + a[index + len(value):]
                    print content
                    x += 1
            print "\n已为你找到%s条" %x
        else:
            print '输入字符不能为空,重新输入请回车,退出请输入quit'
            value = raw_input('> ')
            if len(value) == 0:
                continue
            else:
                sys.exit()


关键字