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)