zoukankan      html  css  js  c++  java
  • 字典

    1.作用:记录一组数据

    2.定义:{}内用逗号分隔开多个key:value,其中value可以使任意类型,但是key必须是不可变类型,且不能重复

    2.1新建一个字典的四种方式

    #方式一:
    d={'k1':111,(1,2,3):222} # d=dict(...)
    print(d['k1'])
    print(d[(1,2,3)])
    print(type(d))

    #方式二:
    d=dict(x=1,y=2,z=3)
    print(d,type(d))

    #方式三:
    info=[
    ['name','egon'],
    ('age',18),
    ['gender','male']
    ]
    # res=dict(info) 
    print(res)

    #方式四:快速初始化一个字典
    keys=['name','age','gender']
    d={}
    d={}.fromkeys(keys,None)
    print(d)

    内置方法

    1.按key取值:可存可取
    若key存在可以修改
    若key不存在可以创建新的key:value

    2.len()
    有几个key就有多长
    ps:相同的key只取最后一个
    d={'k1':111,'k2':2222,'k1':3333,'k1':4444}
    len(d)
    #2

    成员运算符(in/not in)

    ps:根据key来判断
    d={'k1':111,'k2':2222}
    print('k1' in d) #True
    print(111 in d) #False

    删除

    4.1 del删除
    通过key来删除一对key:value
    d={'k1':111,'k2':2222}
    del d['k1']
    print(d)
    #{'k2': 2222}
    4.2 pop删除
    根据key删除元素,返回删除key对应的那个value值
    d={'k1':111,'k2':2222}
    res=d.pop('k2')
    print(d) #{'k1': 111}
    print(res) #2222
    4.3 popitem删除
    随机删除,返回元组
    d={'k1':111,'k2':2222}
    res=d.popitem()
    print(d) #{'k1': 111}
    print(res) #('k2', 2222)

    5.键keys(),值values(),键值对items()  =>在python3中得到的是老母鸡

    d={'k1':111,'k2':2222}
    在python2中
    >>> d={'k1':111,'k2':2222}
    >>> 
    >>> d.keys()
    ['k2', 'k1']
    >>> d.values()
    [2222, 111]
    >>> d.items()
    [('k2', 2222), ('k1', 111)]
    >>> dict(d.items())
    {'k2': 2222, 'k1': 111}

    循环

    for k in d.keys():
        print(k)
    
    for k in d:
        print(k)
    
    for v in d.values():
        print(v)
    
    for k,v in d.items():
        print(k,v)

    print(list(d.keys()))
    print(list(d.values()))
    print(list(d.items()))

    需要掌握的内置方法

    7.1 clear()清除

    d={'k1':111}
    d.clear()
    print(d) #{}

    7.2 pdate()更新字典

    ps:更新列表,可以添加列表没有的内容,可以替换已有的内容的值

    d={'k1':111}
    d.update({'k2':222,'k3':333,'k1':111111111111111})
    print(d)     #{'k1': 111111111111111, 'k2': 222, 'k3': 333}

    7.3 get() 根据key取值 若值不存在也不会报错 返回None

    d={'k1':111}
    print(d['k2'])  # key不存在则报错

    print(d.get('k1')) # 111
    print(d.get('k2')) # key不存在不报错,返回None

    7.4. d.setdefault()

    如果key有则不添加,返回字典中key对应的值

    info={'name':'egon'}
    res=info.setdefault('name','egon')
    print(info)
    print(res)
    
    {'name': 'egon'}
    egon

    如果key没有则添加,返回字典中key对应的值

    info={}
    res=info.setdefault('name','egon')
    print(info)
    print(res)
    
    {'name': 'egon'}
    egon

  • 相关阅读:
    155. 最小栈
    160. 相交链表
    PAT 1057 Stack
    PAT 1026 Table Tennis
    PAT 1017 Queueing at Bank
    PAT 1014 Waiting in Line
    PAT 1029 Median
    PAT 1016 Phone Bills
    PAT 1010 Radix
    PAT 1122 Hamiltonian Cycle
  • 原文地址:https://www.cnblogs.com/bailongcaptain/p/12465286.html
Copyright © 2011-2022 走看看