• (转)Python:字典(zip, dict)


    原文:https://www.jianshu.com/p/17fc4462b6f9

    字典是另一种可变容器模型,且可存储任意类型对象。

    字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:

    d = {key1 : value1, key2 : value2 }
    #键必须是唯一的,但值则不必。
    

    值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

    访问字典中的值

    dict={key1:value1, key2:value2}
    dict[key1]
    

    修改字典的值

    增加新的键/值对,修改或删除已有键/值

    >>> d={'a':1,'b':2}
    >>> print(d['a'])
    1
    >>> d['c']=3#增加键对
    >>> print(d['c'])
    3
    >>> d['b']=4#修改键对
    >>> print(d['c'])
    3
    >>> print(d)
    {'a': 1, 'c': 3, 'b': 4}
    

    删除字典元素

    能删单一的元素也能清空字典,清空只需一项操作。
    删除一个字典用del命令,如下实例:

    dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
    del dict['Name'] # 删除键 'Name'
    dict.clear()     # 清空字典
    del dict         # 删除字典
    print ("dict['Age']: ", dict['Age'])
    print ("dict['School']: ", dict['School'])
    

    字典的一键多值

    d1={}
    key=1
    value=2
    d1.setdefault(key,[]).append(value)
    value=2
    d1.setdefault(key,[]).append(value)
    
    empty_dict = dict() #创建一个空字典
    print(empty_dict)
    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)
    

    zip函数

    zip函数可以接受多个参数,返回的结果是列表,列表中的每一个元素是元组的数据类型

    list1 = [1,2,3]
    list2 = [4,5,6]
    list3 = [7,8,9]
    zip(list1,list2,list3)
    #最后的返回的结果是:
    [(1,4,7),(2,5,8),(3,6,9)]
    2)
    
    list1 = [1,2,3]
    list2 = [4,5,6,7]
    zip(list1,list2)
    返回的结果是
    #[(1,4),(2,5),(3,6)]
    
    list1 = [1,2,3]
    zip(list1)
    #最后的返回结果是
    [(1,),(2,),(3,)]
    
    zip()
    #最后的返回结果是[]
    

    2.dict函数

    dict函数用来快速构造字典,我们可以通过向dict函数传递不同的参数一不同的方式来创建字典,下面我们来了解一下几种常见的构造字典的方式
    1)创建空字典

    a = dict()#创建空字典
    print(a)
    结果
    {}
    

    2)传入关键字

    b = dict(a=1,b=2,c=3)
    print(b)
    得到的结果是:
    {"a":1,"b":2,"c":3}
    

    3)传入一个字典:

    c = dict({'three': 3, 'four': 4})
    print(c)
    结果
    {'four': 4, 'three': 3}
    

    4)传入可迭代对象

    d = dict([('one', 1), ('two', 2), ('three', 3)])
    print(d)
    得到的结果是
    {'three': 3, 'two': 2, 'one': 1}
    
    
    print (’——————一键多值———————’)
    dic1 = {}
    key = 1
    value = 2
    dic1.setdefault(key, []).append(value)
    value = 3
    dic1.setdefault(key, []).append(value)
    print(‘dic1 = ’, dic1)
    

    json一键对应多值

    # -*- coding:utf-8 -*-  
    import json
    dic1 = {}
    key = 'key1'
    value = 'value1'
    dic1.setdefault(key, []).append(value)
    value = 'value2'
    dic1.setdefault(key, []).append(value)
    print('dic1=', dic1)
    jsobj=json.dumps(dic1)
    with open('result.json','w')as f:
      f.write(jsobj)
      f.close()
    

    字典生成json文件

    # -*- coding:utf-8 -*-  
    import json
    key = ['key1','key2','key3']
    value = ['value1','value2','value3']
    d=dict(zip(key,value))
    jsobj=json.dumps(d)
    with open('result.json','w')as f:
      f.write(jsobj)
      f.close()
    技术链接
  • 相关阅读:
    多线程系列教材 (四)- 常见的线程安全相关的面试题
    多线程系列教材 (三)- Java 多线程同步 synchronized 详解
    多线程系列教材 (二)- Java 常见的线程方法
    UPC-最优分解问题(贪心)
    【数论】【模板】
    UPC-人品指数(模拟)
    UPC-趾压板矩阵(强行找规律)
    UPC-排队出发+AcWing-耍杂技的牛(推公式的贪心)
    UPC-购买巧克力(贪心)
    前端——多行三列模式页面布局
  • 原文地址:https://www.cnblogs.com/liujiacai/p/15312360.html
Copyright © 2020-2023  润新知