zoukankan      html  css  js  c++  java
  • python之字典二 内置方法总结

    Python字典包含了以下内置方法:

    clear()函数用于删除字典内所有元素

    dict1 = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
    print('the start len %d' % len(dict1))
    dict1.clear()
    print('the end len %d' % len(dict1))
    结果:
    [python@master tmp]$ python3 c.py 
    the start len 3
    the end len 0

    copy() 函数返回一个字典的浅复制

    例子1:
    dict1 = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
    dict2=dict1.copy()
    print('New Dictinary : %s' %  str(dict2))
    结果:
    [python@master tmp]$ python3 d.py 
    New Dictinary : {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
    
    
    例子2:
    dict1 =  {'user':'runoob','num':[1,2,3]}
    dict2 = dict1            # 浅拷贝: 引用对象
    dict3 = dict1.copy()     # 浅拷贝:深拷贝父对象(一级目录),子对象(二级目录)不拷贝,还是引用
    
    dict1['user']='root'
    dict1['num'].remove(1)
     
    print(dict1)
    print(dict2)
    print(dict3)
    结果
    [python@master tmp]$ python3 d.py 
    {'user': 'root', 'num': [2, 3]}
    {'user': 'root', 'num': [2, 3]}
    {'user': 'runoob', 'num': [2, 3]}
    实例中 dict2 其实是 dict1 的引用(别名),所以输出结果都是一致的,dict3 父对象进行了深拷贝,不会随dict1 修改而修改,子对象是浅拷贝所以随 dict1 的修改而修改。

    fromkeys() 函数用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值。

    dict.fromkeys(seq[, value])     seq -- 字典键值列表。    value -- 可选参数, 设置键序列(seq)的值。

    seq =('Google', 'Runoob', 'Taobao')
     
    dict = dict.fromkeys(seq)
    print ("新字典为 : %s" % str(dict))
     
    dict = dict.fromkeys(seq, 10)
    print ("新字典为 : %s" % str(dict))
    结果:
    [python@master tmp]$ python3 f.py 
    新字典为 : {'Google': None, 'Runoob': None, 'Taobao': None}
    新字典为 : {'Google': 10, 'Runoob': 10, 'Taobao': 10}

    get() 函数返回指定键的值,如果值不在字典中返回默认值(None)

    dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
    print('Name: %s' % dict.get('Name'))
    print('adress1: %s' % dict.get('adress','henan'))
    print('adress2: %s' % dict.get('adress'))
    结果:
    [python@master tmp]$ python3 a.py 
    Name: Zara
    adress1: henan
    adress2: None

    has_key() 函数用于判断键是否存在于字典中,如果键在字典dict里返回true,否则返回false

    python3 中放弃了这个函数,用变量in来代替

    dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
    dict_keys=input('please input dict key: ')
    if dict_keys  in dict:
         print(dict_keys +': %s'% dict[dict_keys])
    else:
         print(dict_keys +' not in dict')
    结果:
    [python@master tmp]$ python3 b.py 
    please input dict key: Name
    Name: Zara

    items() 函数以列表返回可遍历的(键, 值) 元组数组

    dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
    dict_keys=input('please input dict key: ')
    if dict_keys  in dict:
         print(dict_keys +': %s'% dict[dict_keys])
    else:
         print(dict_keys +' not in dict')
    结果:
    [python@master tmp]$ python3 c.py 
    字典值 : dict_items([('Name', 'Zara'), ('Age', 7), ('Class', 'First')])
    Name:Zara
    Age:7
    Class:First

    keys() 函数以列表返回一个字典所有的键

    dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
    print("dict's keys :%s" % dict.keys())
    结果:
    [python@master tmp]$ python3 d.py 
    dict's keys :dict_keys(['Name', 'Age', 'Class'])

    setdefault() 函数和get()类似, 如果键不存在于字典中,将会添加键并将值设为默认值

    dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
    print("dict's keys :%s" % dict.setdefault('Name',None))
    print(dict)
    print("dict's keys :%s" % dict.setdefault('Adress','henan'))
    print(dict)
    结果:
    [python@master tmp]$ python3 f.py 
    dict's keys :Zara
    {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
    dict's keys :henan
    {'Name': 'Zara', 'Age': 7, 'Class': 'First', 'Adress': 'henan'}

    update() 函数把字典dict2的键/值对更新到dict里

    dict1 = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
    print(dict1)
    print('updated end')
    dict2 = {'Adress': 'henan'}
    dict1.update(dict2)
    print(dict1)
    结果:
    [python@master tmp]$ python3 g.py 
    {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
    updated end
    {'Name': 'Zara', 'Age': 7, 'Class': 'First', 'Adress': 'henan'}

    values() 函数以列表返回字典中的所有值

    dict1 = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
    print("dict1's values : %s" % dict1.values())
    结果:
    [python@master tmp]$ python3 m.py 
    dict1's values : dict_values(['Zara', 7, 'First'])

    pop() 方法删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值

    dict1 = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
    dict2=dict1.pop('Name')
    print('dict1 :%s' % dict1)
    print('dict2 :%s' % dict2)
    结果:
    [python@master tmp]$ python3 1.py 
    dict1 :{'Age': 7, 'Class': 'First'}
    dict2 :Zara

    popitem() 方法随机返回并删除字典中的一对键和值,如果字典已经为空,却调用了此方法,就报出KeyError异常。

    dict1 = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
    dict2=dict1.popitem()
    print('dict1 :%s' % dict1)
    print('dict2 :%s' % str(dict2))
    结果:
    [python@master tmp]$ python3 2.py 
    dict1 :{'Name': 'Zara', 'Age': 7}
    dict2 :('Class', 'First')

    我们所处的世道,总是这般复杂,走着走着,杂草丛生,荒庙破寺。走着走着,杨柳依依,桃花烂漫。走着走着,穷山恶水,夜幕深沉。走着走着,琼楼玉宇,大放光明。

    ——剑来《人间苦难说不得也》 ​​​​

  • 相关阅读:
    glog入门demo
    gflag的简单入门demo
    caffe库源码剖析——net层
    排序算法的c++实现——计数排序
    docker的/var/lib/docker目录迁移
    SpringCloud Ribbon 负载均衡 通过服务器名无法连接的神坑一个
    Spring Boot Cache使用与整合
    Navicat Keygen
    Windows / Office
    docker swarm 搭建与服务更新
  • 原文地址:https://www.cnblogs.com/hello-wei/p/9525593.html
Copyright © 2011-2022 走看看