0503Python基础-字典增删改查

1,昨日内容回顾

    列表

        增

            append 追加到最后

            insert 插入 (索引,内容)

            extend 迭代着追加

        删

            pop 按照索引删除,返回删除的元素

            remove 按照元素删除。

            clear 清空列表

            del

                在内存级别删除 del li

                按照索引删除 del li[1]

                切片删除可加步长 del li[1::2]

 

        改

            按照索引改 li[0] = 新内容

            按照切片去改 li[1:3] = '老男孩'

            按照切片去改 li[1:3] = [111, 222, [3,4,5]]

        查

            索引,切片,for循环。

    列表的嵌套

 

    元组

        只读列表,只能查询,不能增删改。

            儿子不能改,孙子可能改。

    range

        当成:自定制的数字范围列表

        与for循环结合,与len for循环结合。

        range(10)

        range(0,10,2)

        range(10,1,-1)

        补充:

        Python2x: range 数字列表

                  xrange 可迭代对象。

        python3x: range 可迭代对象。

3,字典

    基础数据类型之一,{} 以键值对的形式存储数据。

    dic = {'name':'Laonanhai',

            'age':45,

            'name_list':['反面教材','俊俊',....]

            }

    以key:value形式,映射,存储的大量的关系型数据。

    数据类型的分类:

        可变(不可哈希hash):list,dict,set, list = [11,222,333]

        不可变(可哈希hash):str,tuple,int,bool   name = 'alex'

        容器类:

            容器类的数据类型:list,tuple,dict, l1 = [11,True,'alex',[22,33,44]]

            非容器类的数据类型:str,int,bool。 s1 = '[11,22,33]'

    字典的key必须是不可变的数据类型,是唯一的,

        hash算法:

            字典的键通过hash表转换成数字,采用二分查找查询数字。

    字典的value可以是任意数据类型。

    字典的查询速度非常快,存储的大量的关系型数据。

    字典在python3.5包含3.5之前都是无序,但3.6之后是有序的。

4,字典的增删改查及其他操作

       键唯一,键必须是不可变得可哈希的数据类型

       dic = {'name': '老男孩', 'age': 56, 'hobby': 'women'}

       增
dic['sex'] = 'LaddyBoy'
dic['name'] = 'Alex'  有则覆盖,没有就添加
dic.setdefault('sex', 'Laddyboy') 有则不变,无则添加。
dic.setdefault('name', 'alex')
print(dic)

 


print(dic.pop('age'))  # 有返回值,返回的是键对应的值
print(dic.pop('age1', '没有此键...'))
print(dic)

 

dic.clear() 清空字典
print(dic)

print(dic.popitem())  # 随机删除,有返回值,返回值为元组,里面是删除的键值对。
print(dic)

 


del
1,删除整个字典
del dic
2,按照键删除键值对
del dic['name']
print(dic)


1, dic['name'] = 'Alex'  有则覆盖,没有就添加
update 两个字典的更新
dic = {"name": "jin", "age": 18, "sex": "male"}
dic2 = {"name": "alex", "weight": 75}
dic2.update(dic)  # 将dic里面的所有键值对 覆盖添加到dic2中,dic不变
print(dic)  # {'name': 'jin', 'age': 18, 'sex': 'male'}
print(dic2)  # {'name': 'jin', 'weight': 75, 'age': 18, 'sex': 'male'}



1,dic['name']
print(dic['name1'])

2,dic.get('name')
print(dic.get('name'))
print(dic.get('name1'))
print(dic.get('name1', 'sb没有此键'))

for循环查询
dic.keys(), dic.values(), dic.items()  #类似于list但不是list的类型。
print(dic.keys(),type(dic.keys()))
for key in dic.keys():
    print(key)
l_key = list(dic.keys())
print(l_key)

for value in dic.values():
    print(value)

l_value = list(dic.values())
print(l_value)
print(dic.items())

 

分别赋值概念
a, b = 1, 2
a, b = ('alex', '34')
a, b = ['alex', '34']
有 如下 a = 1 b = 3,用一行代码将a b值互换。
a = 1
b = 3
a, b = b, a
print(dic.items())
for i in [22,33,44]:
    print(i)
for i in [(11,22),(33,44),(55,66)]:
    print(i)
k,v = ('name', '老男孩')
for k,v in dic.items(): # [('name', '老男孩'), ('age', 56), ('hobby', 'women')]
    print(k,v)

 

5,字典的嵌套


dic = {
    'name_list': ['碗蓉', '俊俊', '爽妹'],
    'status': None,
    'personal_msg': {
        'name': '反面教材',
        'age': 25,
        'hobby_list': ['抽烟', '喝酒', '烫头'],
    }
}

1,给dic添加一个键值对,学校:老男孩
dic['学校'] = '老男孩'
print(dic)
2,将status对应的值改成True
dic['status'] = True
print(dic)
3,给name_list对应的列表追加一个元素:平平
print(dic['name_list'])
dic['name_list'].append('平平')
print(dic)
4,给personal_msg对应的字典添加一个键值对sex:男
dic2 = dic['personal_msg']
dic2['sex'] = '男'
print(dic)
dic['personal_msg']['sex'] = '男'
print(dic)
5,将hobby_list 对应的列表中的烫头改成唱歌。
dic['personal_msg']['hobby_list'][-1] = '唱歌'
print(dic)

 

posted on 2018-05-03 15:21  kindle86  阅读(99)  评论(0编辑  收藏  举报

导航