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)