zoukankan      html  css  js  c++  java
  • Python字典笔记

    1、字典是Python中=唯一的映射类型。映射类型对象里哈希值(键,key)和只指向的对象(值,value)是一对多的关系,一个字典是可变的,是一个容器类型。字典类型和序列类型(元组,列表)的不同在于存储和访问数据的方式不同。序列类型只用数字类型的键。映射类型可以用其他对象类型左键,一般最常见的是用字符串左键。映射类型中的数据是无序排列的。
    2、字典用{}来建立,内建函数 dict()  或者一个方便的内建函数fromkey()可以创建一个‘默认’字典,字典里元素具有相同的值。
    ddict={}.fromkey(('x','y'),1)
    ddict:{'y':1,'x':1}
    访问:dict1={'name':'earth','port':80}
    >>> for key in dict1:
        print ('key=%s, value=%s' %(key,dict1[key]))
    key=name, value=earth
    key=port, value=80
     3、字典是可变的,但是字典里面的键不允许改变!
    4、如何更新字典:你可以 添加一个新数据项或新元素(键值对);修改一个已经存在的数据项,或者删除一个已经存在的数据项。
    5.字典的比较算法:先比较字典的大小,然后是键,最后是值。
    6.update()方法可以将一个字典的内容添加到另外一个字典中。字典中原来有的键与新添加的键重复,重复的键所对应的内容被新建所对应的内容覆盖掉。原来不存在的条目会添加到字典中。
    setdefault()方法:检查字典中是否存在某键,若存在,则可以取到它的值,如果找不到,你可以给这个键赋默认值并返回该值。
    key()  items()  values()都是其内建函数,返回的都是列表
    7、字典的键:
    (1)不允许一个键对应多个值
    (2)键必须是可哈希的,像列表和字典这样可变类型,是不可哈希的,因此不能作为键。所有的不变类型都是可哈希的。
     例子:管理用户名和密码的模拟登陆数据系统
    db={}
    def newuser():
        prompt='login desired:'
        while True:
            username=input(prompt)
            if username in db:
                prompt='name taken,try another:'
                continue
            else:
                break
        password=input('please enter password:')
        db[username]=password
    
    def olduser():
        username=input('please enter username:')
        password=input('please enter password:')
        psw=db.get(username)
        if password==psw:
            print ('Welcome back %s' % username)
        else:
            print ('login incorrect!')
    def showmenu():
        prompt='''
         (N)ew User Login
         (O)ld User Login
         (Q)uit
         Please enter your choice
        '''
        done=False
        while not done:
            chosen=False
            while not chosen:
                try:
                    choice=input(prompt).strip()[0].lower()
                except (EOFError,KeyboardInterrupt):
                    choice='q'
                print ('
    You picked:[%s]' %choice)
                if choice not in 'noq':
                    print ('Invaild option, try again ')
                else:
                    chosen='True'
            if choice=='q':
                done=True
            if choice=='n':
                newuser()
            if choice=='o':
                olduser()
    
    if __name__=='__main__':
        showmenu()
  • 相关阅读:
    Ubuntu将Python3软连接到Python
    装有Ubuntu的硬盘插入到电脑中无法进入
    如何更改鼠标右键新建内容
    HDU 1113 Word Amalgamation
    暴力题,速算24点
    网络营销整合
    灰色预测代码
    灾情巡视C语言代码
    灰色关联度Matlab代码
    BP神经网络代码
  • 原文地址:https://www.cnblogs.com/itdyb/p/5387767.html
Copyright © 2011-2022 走看看