• Python 字典操作


    字典是 python 中唯一的映射类型,使用键值对(key-value)的形式存储数据。其中 key 必须为不可变类型。字典有两大特点: 无序,键唯一。

    不可变类型有:整型,字符串,元组

    可变类型有:列表,字典

    创建字典

    dic1={"name": "klvchen", "age": 25}
    dic2=dict((('name','klvchen'),('age',25)))
    dic3=dict((('city','guangzhou'),)) # 只有一个键值对的时候,右边必须补 
    dic4=dict([['city','guangzhou'],]) dic5
    =dict(name="klvchen", age=25) # 注意,这里传入关键字参数的做法。参数的等号左边必须为一个变量,右边必须为一个值 print(dic1) print(dic2) print(dic3) print(dic4)
    print(dic5)
    结果:

    {'name': 'klvchen', 'age': 25}
    {'name': 'klvchen', 'age': 25}
    {'city': 'guangzhou'}
    {'city': 'guangzhou'}
    {'age': 25, 'name': 'klvchen'}

    fromkeys 方法

    dic1 = dict.fromkeys(['host1', 'host2', 'host3'], 'well')
    print(dic1)
    结果:
    {'host3': 'well', 'host1': 'well', 'host2': 'well'}
    
    
    dic2 = dict.fromkeys(['host1', 'host2', 'host3'], ['well1', 'well2'])
    print(dic2)
    结果:
    {'host3': ['well1', 'well2'], 'host1': ['well1', 'well2'], 'host2': ['well1', 'well2']}

    增加操作

    dic1={"name": "klvchen"}
    dic1["age"] = 28
    print(dic1)

    setdefault 方法
    res = dic1.setdefault("age",29)    # 键key存在,故返回原来的值
    print(res)

    res = dic1.setdefault("sex", 'male') # 键key不存在,故返回新值
    print(res)
    print(dic1)
    结果:

    {'name': 'klvchen', 'age': 28}
    28
    male
    {'name': 'klvchen', 'age': 28, 'sex': 'male'}

     

    查操作

    dic1={'name': 'klvchen', 'age': 28, 'sex': 'male'}

    print(dic1['name'])     #通过键去查找
    结果:
    klvchen
    dic1={'name': 'klvchen', 'age': 28, 'sex': 'male'}

    print(dic1.keys())       #列出所有的 key
    print(list(dic1.keys())) #把key格式化为数组格式
    结果:
    dict_keys(['name', 'sex', 'age']) ['name', 'sex', 'age']
    dic1={'name': 'klvchen', 'age': 28, 'sex': 'male'}
     
    print(list(dic1.values()))     #列出所有的值
    结果:
    ['klvchen', 'male', 28]
    dic1={'name': 'klvchen', 'age': 28, 'sex': 'male'}
    
    print(list(dic1.items()))    #列出所有的 key 和 值

    结果:
    [('name', 'klvchen'), ('sex', 'male'), ('age', 28)]
    dic1={'name': 'klvchen', 'age': 28, 'sex': 'male'}
    print(dic1.get('name'))
    
    运行结果:
    klvchen
    dic1={'name': 'klvchen', 'age': 28}
    
    print(dic1.get('obj'))
    
    print(dic1.get('sex', 'male'))
    
    运行结果:
    None
    male
    dic1={'name': 'klvchen', 'age': 28, 'sex': 'male'}
    
    print('name' in dic1)         #  如果键在字典里返回true,否则返回false。   
    
    运行结果:       
    True        

     改操作

    dic1 = {'name': 'klvchen', 'age': 28, 'sex': 'male'}
    dic1["age"] = 25
    print(dic1)
    结果:
    {'sex': 'male', 'age': 25, 'name': 'klvchen'}
    dic1 = {'name': 'klvchen', 'age': 28, 'sex': 'male'}
    dic2 = {"age": 25, "city": "guangzhou"}
    dic1.update(dic2)
    print(dic1)
    结果:
    {'sex': 'male', 'age': 25, 'city': 'guangzhou', 'name': 'klvchen'}

    删操作

    del 方法

    dic1 = {'name': 'klvchen', 'age': 28, 'sex': 'male'}
    del dic1['age']
    print(dic1)
    结果:
    {'name': 'klvchen', 'sex': 'male'}

    ------------------------------------------------------------
    dic1 = {'name': 'klvchen', 'age': 28, 'sex': 'male'}
    del dic1
    print(dic1)
    结果:
    NameError: name 'dic1' is not defined

    注意,这里已把 dic1 这个字典从内存中删除,所以程序报错

    pop方法 #删除字典中指定的键值对,并返回该键的值

    dic1 = {'name': 'klvchen', 'age': 28, 'sex': 'male'}
    res = dic1.pop('age')
    print(dic1)
    print(res)
    结果:

    {'sex': 'male', 'name': 'klvchen'}
    28

    popitem 方法 # 随机删除某组键值对,并以元组的方式返回删除的值

    dic1 = {'name': 'klvchen', 'age': 28, 'sex': 'male'}
    res = dic1.popitem()
    print(dic1)
    print(res)
    结果:

    {'name': 'klvchen', 'sex': 'male'}
    ('age', 28)

    排序操作

    sorted方法:

    dic1 ={'a': 111, 'k': 222, 'c': 333}
    print(sorted(dic1))
    print(sorted(dic1.items()))
    结果:
    ['a', 'c', 'k']
    [('a', 111), ('c', 333), ('k', 222)]

    遍历操作

    dic1 ={'a': 111, 'k': 222, 'c': 333}
    for i in dic1:
        print(i,dic1[i])
    结果:
    c 333
    a 111
    k 222
    dic1 ={'a': 111, 'k': 222, 'c': 333}
    for i in dic1.items():
         print(i)
    结果:
    ('c', 333)
    ('a', 111)
    ('k', 222)
    dic1 ={'a': 111, 'k': 222, 'c': 333}
    for k,v in dic1.items():
         print(k, v)
    结果:
    k 222
    a 111
    c 333

     

    字典与字符串相互转换

    a = str({'GuangZhou':{'region','tianhe'}})
    print(type(a))
    a=eval(a)
    print(type(a))
    print(a['GuangZhou'])
    结果:

    <class 'str'>
    <class 'dict'>
    {'tianhe', 'region'}

  • 相关阅读:
    C# winform 学习(一)
    C# winform 学习(一)
    C# winform 学习(二)
    C# winform 学习(二)
    C# Winform 学习(四)
    C# Winform 学习(四)
    C# winform 学习(三)
    gcc编译动态和静态链接库
    对深拷贝与浅拷贝的再次理解(默认构造函数是浅拷贝)
    QWaitCondition(和Java的Notify机制非常相像)
  • 原文地址:https://www.cnblogs.com/klvchen/p/8623945.html
Copyright © 2020-2023  润新知