zoukankan      html  css  js  c++  java
  • Python--Dict

    字典:值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
    dict = {}
    dict['one'] = "测了个试1"
    dict[2] = "测了个试2"
    tinydict = {'name': 'runoob','code':1, 'site': 'www.runoob.com'}
    print (dict['one']) # 输出键为 'one' 的值
    print (dict[2]) # 输出键为 2 的值
    print (tinydict) # 输出完整的字典
    print (tinydict.keys()) # 输出所有键 p
    rint (tinydict.values()) # 输出所有值
     
    创建字典
    dict1=dict([('Runoob', 1), ('Google', 2), ('Taobao', 3)])
    print(dict1) #{'Taobao': 3, 'Runoob': 1, 'Google': 2}
    dict2={x: x**2 for x in (2, 4, 6)}
    print(dict2) #{2: 4, 4: 16, 6: 36}
    dict3=dict(Runoob=1, Google=2, Taobao=3)
    print(dict3) #{'Runoob': 1, 'Google': 2, 'Taobao': 3}
     
    len(dict)计算字典元素个数,即键的总数。
    dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
    len(dict) #3
     
    str(dict)转化为字符串表示。
    dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
    s=str(dict) p
    rint(s) #"{'Name': 'Runoob', 'Class': 'First', 'Age': 7}"
     
    dict.get(key, default=None)函数返回指定键的值
    dict = {'Name': 'Runoob', 'Age': 27}
    print (dict.get('Age')) #27
    print (dict.get('Sex', "NA")) #NA
     
    dict.keys()方法返回一个可迭代对象,可以使用 list() 来转换为列表,列表为字典中的所有键。
    dict = {'Name': 'Runoob', 'Age': 7}
    lst=list(dict.keys()) # 转换为列表
    print(lst) #['Name', 'Age']
     
    dict.values()方法返回一个迭代器,可以使用 list() 来转换为列表,列表为字典中的所有值。
    dict = {'Sex': 'female', 'Age': 7, 'Name': 'Zara'}
    lst=list(dict.values()) # 转换为列表
    print (lst) #['female', 7, 'Zara']
     
    dict.items()法以列表返回可遍历的(键, 值) 元组数组。
    dict1 = {'Name': 'Runoob', 'Age': 7}
    lst=dict1.items()
    print (lst) #dict_items([('Age', 7), ('Name', 'Runoob')])
     
    dict.fromkeys(seq[, value])函数用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值。
    seq = ('name', 'age', 'sex')
    dict1 = dict.fromkeys(seq)
    dict2 = dict.fromkeys(seq, 10)
    print (dict1) #{'age': None, 'name': None, 'sex': None}
    print (dict2) #{'age': 10, 'name': 10, 'sex': 10}
     
    dict.popitem() 方法随机返回并删除字典中的一对键和值(一般删除末尾对)。
    dict1= {'name': '测了个试', 'alexa': 10000, 'url': 'www.runoob.com'}
    pop_obj=dict1.popitem()
    print(pop_obj) # ('url', 'www.runoob.com')
     
    pop(key[,default])方法删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
    dict1= {'name': '测了个试', 'alexa': 10000, 'url': 'www.runoob.com'}
    pop_obj=dict1.pop('name')
    print(pop_obj) #测了个试
     
    dict.update(dict2) 函数把字典参数 dict2 的 key/value(键/值) 对添加到字典 dict 里。有重复则覆盖重负的键值对
    慎用!!! 个人发现update方法可能存在bug: 1.碰到":"会自作聪明加空格 2.碰到字符串中的空格会自作聪明去除空格
    dict1 = {'Name': 'Runoob', 'Age': 7}
    dict2 = {'Sex': 'female' }
    dict1.update(dict2)
    print (dict1) # {'Name': 'Runoob', 'Age': 7, 'Sex': 'female'}
     
    dict.copy()函数返回一个字典的浅复制。
    dict1 = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
    dict2 = dict1.copy()
    print (dict2) #{'Age': 7, 'Name': 'Runoob', 'Class': 'First'}
     
    dict.clear()函数用于删除字典内所有元素。
    dict1 = {'Name': 'Zara', 'Age': 7}
    dict1.clear()
    print (dict1) #{}
     
    dict的交集,并集。(需要先转化为set,再处理)
    方式1.使用“&”运算符
    a = { 'x' : 1, 'y' : 2, 'z' : 3 }
    b = { 'u' : 1, 'v' : 2, 'w' : 3, 'x' : 1, 'y': 2 }
    set( a.keys() ) & set( b.keys() ) # set(['y', 'x'])
    set( a.items() ) & set( b.items() ) # set([('y', 2), ('x', 1)])
     
    方式2.调用set的方法
    a = { 'x' : 1, 'y' : 2, 'z' : 3 }
    b = { 'u' : 1, 'v' : 2, 'w' : 3, 'x' : 1, 'y': 2 }
    setA = set( a )
    setB = set( b )
    setA.intersection( setB ) # set(['y', 'x'])
     
     
    dict中是否有某键
    d = {'Name':'coco','Sex':'Female'}
    print('Name' in d.keys()) # True
    print('Name' in d) # True
    print (d.__contains__('Name'))   # True
     
    对象中是否有某键
    print (hasattr(d, 'Name') # True
     

  • 相关阅读:
    Java第七次作业
    JAVA第六次作业
    JAVA第五次作业
    JAVA第四次作业
    JAVA第三次作业
    JAVA第二次作业
    Java第一次作业
    2017《Java》预备作业02 计科1501刘喆
    2017《JAVA》预备作业 计科1501刘喆
    Java第十次作业--多线程
  • 原文地址:https://www.cnblogs.com/absoluteli/p/13970724.html
Copyright © 2011-2022 走看看