py_字典的操作方法

字典

字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,3.6版本之后字典是有序的(3.5版本之前字典是无序的),且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。

字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象结合,3.6版本之后字典是有序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

增:setdefault

 

dic = {
    'name':'烟雨江南',
    'age':18,
    'sex':'man'
}
增
dic['hobby'] = '看书'  # 有则修改,无则添加
print(dic)
dic.setdefault('hobby','玩游戏') # 有则不变,无则添加
print(dic)

 

删:pop、clear、popitem、del

dic = {
    'name':'烟雨江南',
    'age':18,
    'sex':'man'
}
ret = dic.pop('name') # 按照键删除键值对,并返回删除的值
ret = dic.pop('name1','删除的对象不存在') # 设置两个参数,第二个参数是提示语,一般设置为None;键不存在也不会报错
print(ret)
dic.clear() # 清空字典
dic.popitem() #3.6版本之后删除最后一个键值对
print(dic)
del dic['name'] # 按照建删除
print(dic)

改:update

dic = {
    'name':'烟雨江南',
    'age':18,
    'sex':'man'
}
dic['name'] = 'jj'
print(dic)
dic.update(name = 'TSL',money=10000)  #更新:有则覆盖,没有则添加
print(dic)

dic = {"name": "jin", "age": 18, "sex": "male"}
dic2 = {"name": "alex", "weight": 75}
dic2.update(dic)
# 将dic里面的键值对覆盖添加到dic2中

查:

dic = {
    'name':'烟雨江南',
    'age':18,
    'sex':'man'
}
print(dic['age']) # 若不存在会报错

dic.get('age')    # 没有此键默认返回None
print(dic)
ret = dic.get('age1','此键不存在') # 键不存在,可设置提示语
print(ret)

字典的其他操作:


dic = {
'name': '太白金星',
'age': 18,
'hobby': 'wife',
}
# 查看键
res = dic.keys() # 查看字典中所有键
print(res,type(res)) # <class 'dict_keys'> 该类型可以循环遍历
for i in res:
print(i)
print(list(res)) # 也可以通过list转化为列表
-------------------------------------------------------------
# 查看值
res1 = dic.values() # 查看字典中所有值
print(res1,type(res1)) # <class 'dict_values'> 该类型可以循环遍历
for i in res1:
print(i)
print(list(res1)) # 也可以通过list转化为列表
-------------------------------------------------------------
#查看键值对
res2 = dic.items()
print(res2,type(res2)) # 查看字典中所有键值对
for i in res2:
print(i)
print(list(res2)) # 也可通过list转化为列表:[('name', '太白金星'), ('age', 18), ('hobby', 'wife')]

小练习:

dic = {
    'name_list': ['博哥', '菊哥', 'b哥', 'alex'],
    'barry': {
        'name': '太白金星',
        'age': 18,
        'hobby': 'wife',
    }
}
1,给这个列表['博哥', '菊哥', 'b哥', 'alex'] 追加一个元素 '老男孩'2,将这个列表['博哥', '菊哥', 'b哥', 'alex']中的alex变成首字母大写。
3,将这个键值对 'name': '太白金星''太白金星' 改成男神。
4,给barry对应的小字典增加一个键值对: weight: 160

dic.get('name_list').append('老男孩')
dic['name_list'][3]= dic['name_list'][3].capitalize()
dic['barry']['name'] = '男神'
dic['barry'].setdefault('weight',160)
dic['barry'].update(weight = 160)
print(dic)

面试题:

'''
a = 18
b = 32
通过一行代码 将a,b的值互换。

'''
a = 18
b = 32
a, b = b, a

 

posted @ 2019-03-06 14:31  叫我大表哥  阅读(620)  评论(0编辑  收藏  举报