zoukankan      html  css  js  c++  java
  • 《Python学习之路 -- 字典的方法》

       字典跟前面说到的列表和元组都不同,字典储存的数据是无序的,并且使用了键值对的方式存储,一个字典可以存储多个键值对(key-value),而且其中的key必须是不可变类型,而value可以是任意的数据类型,在前面已经介绍过字典的基本操作了,下面来介绍字典的内置方法:

    dict.clear( )

     该方法用于清空字典的所有键值对,返回一个空的字典,该方法会改变原字典。

    my_dict = {'name':'jonas','age':18,'gender':'male'}
    print(my_dict)  # 输出:{'age': 18, 'name': 'jonas', 'gender': 'male'}    注意:无序,不一定按顺序输出
    my_dict.clear()
    print(my_dict)  # 输出: {}

    dict.copy( )

    该方法用于拷贝字典(浅拷贝),该方法会返回一个副本字典,不会改变原字典。

    my_dict = {'name':'jonas','age':18,'gender':'male'}
    copy_dict = my_dict.copy()
    print(copy_dict,id(copy_dict) == id(my_dict))  # 输出:{'gender': 'male', 'age': 18, 'name': 'jonas'}   False

    dict.get(k,d=None)

    该方法用于读取字典中的属性,如果字典中存在k这个属性,则返回对应的value,如果不存在,则给该属性指定默认值d,并返回该默认值,该方法不会改变原字典。

    my_dict = {'name':'jonas','age':18,'gender':'male'}
    result = my_dict.get('name')
    my_dict.get('address','China')
    print(result,my_dict)  # 输出:jonas   {'name': 'jonas', 'age': 18, 'gender': 'male'}

    dict.items( )

    该方法会将所有键值对存入一个可以转为可迭代对象的容器中,并返回该容器。

    dict.keys( )

    该方法会将所有键存入一个可以转为可迭代对象的容器中,并返回该容器。

    dict.values( )

    该方法会将所有值存入一个可以转为可迭代对象的容器中,并返回该容器。

    my_dict = {'name':'jonas','age':18,'gender':'male'}
    for item in my_dict.items():
        print(item)
    # 输出:('name', 'jonas')  ('age', 18)  ('gender', 'male')
    for key in my_dict.keys():
        print(key)
    # 输出:name  age  gender
    for value in my_dict.values():
        print(value)
    # 输出:jonas   18  male

    dict.pop(k,d=None)

    该方法用于删除字典中的k键值对,如果存在,则直接删除,并返回对应的value,如果不存在,则返回第二个参数d

    my_dict = {'name':'jonas','age':18,'gender':'male'}
    result = my_dict.pop('name')
    print(my_dict,result)  # 输出:{'age': 18, 'gender': 'male'}  jonas

    dict.popitem( )

    随机删除字典中的一对键值对,并将被删除的键值对封装成一个元组返回,该方法会改变原字典。

    my_dict = {'name':'jonas','age':18,'gender':'male'}
    result = my_dict.popitem()
    print(result)  # 输出:('age', 18)

    dict.setdefault(k,d=None)

    该方法用于给字典的属性k设置默认值,如果该属性已经存在,则不设置默认值d,并且返回该key对应的value;如果属性不存在,则设置默认值,结果返回这个默认值,该方法会改变原字典。

    my_dict = {'name':'jonas','age':18,'gender':'male'}
    result = my_dict.setdefault('name','Tom')
    print(result)  # 输出:jonas
    result2 = my_dict.setdefault('address','China')
    print(result2,my_dict)  # 输出:China  {'address': 'China', 'gender': 'male', 'age': 18, 'name': 'jonas'}

    dict.update(E=None,**F)

    该方法用于更新字典的键值对,该方法会改变原字典。

    my_dict = {'name':'jonas','age':18,'gender':'male'}
    # 可以传一个字典作为参数,如果某些键已经存在,则覆盖,如果不存在则新建
    result = my_dict.update({'address':'China','name':'Jerry'})
    print(my_dict)  # 输出:{'age': 18, 'gender': 'male', 'address': 'China', 'name': 'Jerry'}
    # 还可以传多个键值对
    result2 = my_dict.update(hobby='football',weight=120)
    print(my_dict)  # 输出:{'hobby': 'football', 'gender': 'male', 'name': 'Jerry', 'weight': 120, 'address': 'China', 'age': 18}
  • 相关阅读:
    HDU 5492 Find a path
    codeforce gym 100548H The Problem to Make You Happy
    Topcoder SRM 144 Lottery
    codeforce 165E Compatible Numbers
    codeforce gym 100307H Hack Protection
    区间DP总结
    UESTC 1321 柱爷的恋爱 (区间DP)
    HDU 4283 You Are the One (区间DP)
    HDU 2476 String painter (区间DP)
    UESTC 426 Food Delivery (区间DP)
  • 原文地址:https://www.cnblogs.com/jonas-von/p/8931537.html
Copyright © 2011-2022 走看看