zoukankan      html  css  js  c++  java
  • 【Python—字典的用法】创建字典的3种方法

    #创建一个空字典
    empty_dict = dict() 
    print(empty_dict)
    
    #用**kwargs可变参数传入关键字创建字典
    a = dict(one=1,two=2,three=3) 
    print(a)
    
    #传入可迭代对象
    b = dict(zip(['one','two','three'],[1,2,3]))
    print(list(zip(['one','two','three'],[1,2,3])))
    print(b)
    
    #传入可迭代对象 
    c = dict([('one', 1), ('two', 2), ('three', 3)])
    print(c)
    
    c1 = dict([('one', 1), ('two', 2), ('three', 3),('three', 4),('three', 5)])
    print(c1)#如果键有重复,其值为最后重复项的值。 
    
    
    #传入映射对象,字典创建字典  
    d = dict({'one': 1, 'two': 2, 'three': 3}) 
    print(d) 
    
    print(a == b == c == d)
    按 Ctrl+C 复制代码按 Ctrl+C 复制代码
    输出:
    {}
    {'one': 1, 'two': 2, 'three': 3}
    [('one', 1), ('two', 2), ('three', 3)]
    {'one': 1, 'two': 2, 'three': 3}
    {'one': 1, 'two': 2, 'three': 3}
    {'one': 1, 'two': 2, 'three': 5}
    {'one': 1, 'two': 2, 'three': 3}
    True

    知识点:

    class dict(**kwarg)
    class dict(mapping, **kwarg)
    class dict(iterable, **kwarg)

    在python中,*arg表示任意多个无名参数,类型为tuple;**kwargs表示关键字参数,为dict。参考【Python—参数】*arg与**kwargs参数的用法

    python官方文档中说明,如果传入的是可迭代对象,则可迭代对象中的每一项自身必须是可迭代的,并且每一项只能有两个对象。第一个对象成为新字典的键,第二个对象成为其键对应的值。如果键有重复,其值为最后重复项的值。

    # 用 class dict(mapping, **kwarg) 创建一个并集字典,会影响相同键不同值的项  
    union = dict(s1,**s2)  
    print (union)
    
    输出:
    {'d': 4, 'a': 3, 'e': 3, 'f': 4, 'c': 4, 'b': 3}

     知识点:

    在函数调用时,**会以键/值对的形式解包一个字典,使其成为独立的关键字参数。参考【Python—参数】*arg与**kwargs参数的用法

  • 相关阅读:
    HDU1260DP
    HDU1114 背包
    HDU1078记忆化搜索
    HDU1024 最大m子段和
    Codeforces Round #401 (Div. 2) A,B,C,D,E
    HDU3666 差分约束
    HDU1540 区间合并
    HDU3308 线段树(区间合并)
    Codeforces Round #403 (Div. 2) B 三分 C dfs
    HDU1573 线性同余方程(解的个数)
  • 原文地址:https://www.cnblogs.com/insane-Mr-Li/p/12789172.html
Copyright © 2011-2022 走看看