python基础(四):字典的操作

python3

pycharm

 

dict字典是‘键’(key)、‘值’(value)对的集合

特性1、不允许同一个key出现两次,若出现两相同的key,则后一个key:value会被记录下来

dict={'a':1,'b':2,'c':3,'a':2}
print(dict)
print(dict['a'])
---------------
{'a': 2, 'b': 2, 'c': 3}
2

 

特性2、key必须不可变,列表不可充当字典的key

dict={[1]:1,'b':2,'c':3,}
print(dict[[1]])
---------------
TypeError: unhashable type: 'list'

 

一、dict增

1、赋值的方式直接加入

#dict增加 key-value对
dict={
    'key_1':'value_1',
    'key_2':'value_2',
    'key_3':{
        'key_31':'value_31',
        'key_32':'value_32',
    },
    'key_4':['value_41','value_42'],
}

print(dict)
dict['key_add']='value_add'
print(dict)

---------------

{'key_1': 'value_1', 'key_2': 'value_2', 'key_3': {'key_31': 'value_31', 'key_32': 'value_32'}, 'key_4': ['value_41', 'value_42']}
{'key_1': 'value_1', 'key_2': 'value_2', 'key_3': {'key_31': 'value_31', 'key_32': 'value_32'}, 'key_4': ['value_41', 'value_42'], 'key_add': 'value_add'}

2、setdefault()方法加入

#加入已经存在的key-value,不会产生改变
dict={
    'key_1':'value_1',
    'key_2':'value_2',
    'key_3':{
        'key_31':'value_31',
        'key_32':'value_32',
    },
    'key_4':['value_41','value_42'],
}

print(dict)
dict.setdefault('key_1','value_xx')
print(dict)
---------------

{'key_1': 'value_1', 'key_2': 'value_2', 'key_3': {'key_31': 'value_31', 'key_32': 'value_32'}, 'key_4': ['value_41', 'value_42']}
{'key_1': 'value_1', 'key_2': 'value_2', 'key_3': {'key_31': 'value_31', 'key_32': 'value_32'}, 'key_4': ['value_41', 'value_42']}

 
#单独加入key,默认对应的value为None
dict={
    'key_1':'value_1',
    'key_2':'value_2',
    'key_3':{
        'key_31':'value_31',
        'key_32':'value_32',
    },
    'key_4':['value_41','value_42'],
}

print(dict)
dict.setdefault('key_add')
print(dict)
---------------

{'key_1': 'value_1', 'key_2': 'value_2', 'key_3': {'key_31': 'value_31', 'key_32': 'value_32'}, 'key_4': ['value_41', 'value_42']}
{'key_1': 'value_1', 'key_2': 'value_2', 'key_3': {'key_31': 'value_31', 'key_32': 'value_32'}, 'key_4': ['value_41', 'value_42'], 'key_add': None}

#加入key-value
dict={
    'key_1':'value_1',
    'key_2':'value_2',
    'key_3':{
        'key_31':'value_31',
        'key_32':'value_32',
    },
    'key_4':['value_41','value_42'],
}

print(dict)
dict.setdefault('key_add','value_add')
print(dict)
---------------

{'key_1': 'value_1', 'key_2': 'value_2', 'key_3': {'key_31': 'value_31', 'key_32': 'value_32'}, 'key_4': ['value_41', 'value_42']}
{'key_1': 'value_1', 'key_2': 'value_2', 'key_3': {'key_31': 'value_31', 'key_32': 'value_32'}, 'key_4': ['value_41', 'value_42'], 'key_add': 'value_add'}

二、dict删

1、pop('key')

#根据key删除对应的value
dict={
    'key_1':'value_1',
    'key_2':'value_2',
    'key_3':{
        'key_31':'value_31',
        'key_32':'value_32',
    },
    'key_4':['value_41','value_42'],
}

print(dict)
dict.pop('key_2')
print(dict)
---------------

{'key_1': 'value_1', 'key_2': 'value_2', 'key_3': {'key_31': 'value_31', 'key_32': 'value_32'}, 'key_4': ['value_41', 'value_42']}
{'key_1': 'value_1', 'key_3': {'key_31': 'value_31', 'key_32': 'value_32'}, 'key_4': ['value_41', 'value_42']}

2、删除最后一对key-value

#删除最后一对key-value
dict={
    'key_1':'value_1',
    'key_2':'value_2',
    'key_3':{
        'key_31':'value_31',
        'key_32':'value_32',
    },
    'key_4':['value_41','value_42'],
}

print(dict)
dict.popitem()
print(dict)
---------------

{'key_1': 'value_1', 'key_2': 'value_2', 'key_3': {'key_31': 'value_31', 'key_32': 'value_32'}, 'key_4': ['value_41', 'value_42']}
{'key_1': 'value_1', 'key_2': 'value_2', 'key_3': {'key_31': 'value_31', 'key_32': 'value_32'}}

3、语句

#del语句删除对应key的key-value对
dict={
    'key_1':'value_1',
    'key_2':'value_2',
    'key_3':{
        'key_31':'value_31',
        'key_32':'value_32',
    },
    'key_4':['value_41','value_42'],
}

print(dict)
del dict['key_3']
print(dict)
---------------

{'key_1': 'value_1', 'key_2': 'value_2', 'key_3': {'key_31': 'value_31', 'key_32': 'value_32'}, 'key_4': ['value_41', 'value_42']}
{'key_1': 'value_1', 'key_2': 'value_2', 'key_4': ['value_41', 'value_42']}

4、清空dict

#清空整个字典
dict={
    'key_1':'value_1',
    'key_2':'value_2',
    'key_3':{
        'key_31':'value_31',
        'key_32':'value_32',
    },
    'key_4':['value_41','value_42'],
}

print(dict)
dict.clear()
print(dict)
---------------

{'key_1': 'value_1', 'key_2': 'value_2', 'key_3': {'key_31': 'value_31', 'key_32': 'value_32'}, 'key_4': ['value_41', 'value_42']}
{}

三、dict改

1、直接对对应的key赋值新的value

#修改value
dict={
    'key_1':'value_1',
    'key_2':'value_2',
    'key_3':{
        'key_31':'value_31',
        'key_32':'value_32',
    },
    'key_4':['value_41','value_42'],
}

print(dict)
dict['key_3']=[1,2]
print(dict)
---------------

{'key_1': 'value_1', 'key_2': 'value_2', 'key_3': {'key_31': 'value_31', 'key_32': 'value_32'}, 'key_4': ['value_41', 'value_42']}
{'key_1': 'value_1', 'key_2': 'value_2', 'key_3': [1, 2], 'key_4': ['value_41', 'value_42']}

四、dict查

1、dict[key]

#查找value
dict={
    'key_1':'value_1',
    'key_2':'value_2',
    'key_3':{
        'key_31':'value_31',
        'key_32':'value_32',
    },
    'key_4':['value_41','value_42'],
}

print(dict)
value=dict['key_3']
print(value)
---------------

{'key_1': 'value_1', 'key_2': 'value_2', 'key_3': {'key_31': 'value_31', 'key_32': 'value_32'}, 'key_4': ['value_41', 'value_42']}
{'key_31': 'value_31', 'key_32': 'value_32'}

2、get[key]

#查找value
dict={
    'key_1':'value_1',
    'key_2':'value_2',
    'key_3':{
        'key_31':'value_31',
        'key_32':'value_32',
    },
    'key_4':['value_41','value_42'],
}

print(dict)
value=dict.get('key_4')
print(value)
---------------

{'key_1': 'value_1', 'key_2': 'value_2', 'key_3': {'key_31': 'value_31', 'key_32': 'value_32'}, 'key_4': ['value_41', 'value_42']}
['value_41', 'value_42']

3、遍历key和value

#遍历key、value
dict={
    'key_1':'value_1',
    'key_2':'value_2',
    'key_3':{
        'key_31':'value_31',
        'key_32':'value_32',
    },
    'key_4':['value_41','value_42'],
}

list_key=[]
list_value=[]

for key in dict.keys():
    list_key.append(key)

for value in dict.values():
    list_value.append(value)

print(list_key)
print(list_value)
---------------

['key_1', 'key_2', 'key_3', 'key_4']
['value_1', 'value_2', {'key_31': 'value_31', 'key_32': 'value_32'}, ['value_41', 'value_42']]

五、通用方法

radiansdict.clear()    #删除字典内所有元素
radiansdict.copy()    #返回一个字典的浅复制
radiansdict.fromkeys()    #创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
radiansdict.get(key, default=None)    #返回指定键的值,如果值不在字典中返回default值
radiansdict.has_key(key)    #如果键在字典dict里返回true,否则返回false
radiansdict.items()    #以列表返回可遍历的(键, 值) 元组数组
radiansdict.keys()    #以列表返回一个字典所有的键
radiansdict.setdefault(key, default=None)    #和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设为default
radiansdict.update(dict2)    #把字典dict2的键/值对更新到dict里
radiansdict.values()    #以列表返回字典中的所有值

 

posted @ 2019-01-14 16:02  cooper_wang  阅读(239)  评论(0编辑  收藏  举报