python学习第五次笔记

Posted on 2019-04-11 13:33  姜健  阅读(179)  评论(0编辑  收藏  举报

python学习第五次笔记

列表的缺点

1.列表可以存储大量的数据类型,但是如果数据量大的话,他的查询速度比较慢。

2.列表只能按照顺序存储,数据与数据之间关联性不强

数据类型划分

数据类型:可变数据类型、不可变数据类型

不可变数据类型:元组,布尔值(bool)、int、str

可变数据类型:list(列表)、字典(dict)、set、

dict key 必须是不可变数据类型、可哈希

  value:任意数据类型。

dict 优点:二分查找去查询

     存储大量的关系型数据

  特点:无序的

创建字典的几种方式

1 dic = dict((('one', 1),('two', 2),('three', 3)))
2 # dic = dict([('one', 1),('two', 2),('three', 3)])
3 print(dic)  # {'one': 1, 'two': 2, 'three': 3}
方式1
1 dic = dict(one=1,two=2,three=3)
2 print(dic)  # {'one': 1, 'two': 2, 'three': 3}
方式2
1 dic = dict({'one': 1, 'two': 2, 'three': 3})
2 print(dic)  # {'one': 1, 'two': 2, 'three': 3}
方式3

 字典的增加

通过键值对直接增加

1 dic1 = {'age': 18, 'name': 'xin', 'sex': 'male',}
2 dic1['high'] = 185
3 dic1['age'] = 16
4 # 没有键值对,添加
5 # 如果有键,则值覆盖
6 # {'age': 16, 'sex': 'male', 'high': 185, 'name': 'xin'}
7 print(dic1)
View Code

setdefault

1 dic1 = {'age': 18, 'name': 'xin', 'sex': 'male',}
2 dic1.setdefault('weight')  # 有键值对,不做任何改变 ,没有才添加。
3 dic1.setdefault('weight', 150)
4 dic1.setdefault('name', 'erge')
5 print(dic1)
6 # {'name': 'xin', 'age': 18, 'weight': None, 'sex': 'male'}
View Code

字典的删除

pop  通过key删除字典的键值对,有返回值,可设置返回值。

1 dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
2 print(dic1.pop('age')) # 有返回值,按键去删除
3 print(dic1)
4 # {'sex': 'male', 'name': 'jin'}
5 
6 print(dic1.pop('haha', '没有此键'))  # 可设置返回值
7 # 没有haha这个键,如果不加上'没有此键'这个值,运行会报错
8 print(dic1)
9 # {'sex': 'male', 'name': 'jin'}
View Code

popitem  随机删除

1 dic1 = {'age': 18, 'name': 'haha', 'sex': 'male',}
2 s = dic1.popitem()
3 print(s, dic1)  # 随机删除 有返回值 元组,删除的键值。
4 # ('sex', 'male') {'age': 18, 'name': 'haha'}
View Code

clear  清空字典

1 dic1 = {'age': 18, 'name': 'haha', 'sex': 'male',}
2 dic1.clear()  # 清空字典
3 print(dic1)
4 # {}
View Code

del  通过键删除键值对

1 dic1 = {'age': 18, 'name': 'haha', 'sex': 'male',}
2 del dic1['name']
3 print(dic1)
4 {'age': 18, 'sex': 'male'}
5 
6 # 删除整个字典
7 del dic1
View Code

字典的修改

通过键值直接修改

1 dic1 = {'age': 18, 'name': 'haha', 'sex': 'male',}
2 dic1['age'] = 16
3 print(dic1)
4 # {'age': 16, 'name': 'haha', 'sex': 'male'}
View Code

update

 1 dic = {'name': 'haha', 'age': 18, 'sex': 'male'}
 2 dic.update(sex='', height=175)
 3 print(dic)
 4 # {'name': 'haha', 'age': 18, 'height': 175, 'sex': '男'}
 5 # 没有进行添加,有就进行修改
 6 
 7 dic = {'name': 'haha', 'age': 18, 'sex': 'male'}
 8 dic.update([('one', 1), ('two', 2), ('there', 3)])
 9 print(dic)
10 # 'two': 2, 'name': 'haha', 'sex': 'male', 'age': 18, 'one': 1, 'there': 3}
11 
12 dic = {'name': 'haha', 'age': 18, 'sex': 'male'}
13 dic2 = {'name': 'heihei', 'weight': 75}
14 dic2.update(dic)
15 print(dic)
16 print(dic2)
17 # {'name': 'haha', 'age': 18, 'sex': 'male'}
18 # {'weight': 75, 'name': 'haha', 'age': 18, 'sex': 'male'}
View Code

字典的查看

 通过键查询

1 # 直接dic[key](没有此键或报错)
2 dic = {'name': 'haha', 'age': 18}
3 print(dic['name'])  # haha
View Code

get

1 dic = {'name': 'haha', 'age': 18}
2 v = dic.get('name')
3 print(v) # 'haha'
4 v = dic.get('name1')
5 print(v) # None
6 v = dic.get('name2', '没有此键')
7 print(v) # 没有此键
View Code

keys,values,items

 1 # keys()
 2 dic = {'name': 'haha', 'age': 18}
 3 print(dic.keys())  # dict_keys(['age', 'name'])
 4 
 5 # values()
 6 dic = {'name': 'haha', 'age': 18}
 7 print(dic.values())  # dict_values([18, 'haha'])
 8 
 9 # items()
10 dic = {'name': 'haha', 'age': 18}
11 print(dic.items())  # dict_items([('age', 18), ('name', 'haha')])
View Code

 其他操纵

1 dic1 = {'age': 18, 'name': 'haha', 'sex': 'male',}
2 for i in dic1:
3     print(i)
4 for i in dic1.keys():
5     print(i)
6 # age
7 # sex
8 # name
View Code
1 dic1 = {'age': 18, 'name': 'haha', 'sex': 'male'}
2 for i in dic1.values():
3     print(i)
4 # male
5 # haha
6 # 18
View Code
 1 dic1 = {'age': 18, 'name': 'haha', 'sex': 'male'}
 2 for i in dic1.items():
 3     print(i)
 4 # ('age', 18)
 5 # ('name', 'haha')
 6 # ('sex', 'male')
 7 
 8 for k, v in dic1.items():
 9     print(k, v)
10 # name haha
11 # age 18
12 # sex male
View Code

拆包

 1 a, b = 1, 2
 2 print(a, b)
 3 # 1 2
 4 
 5 a, b = (1, 2)
 6 print(a, b)
 7 # 1 2
 8 
 9 a, b = ('你好', '世界')  # 这个用专业名词就叫做元组的拆包
10 print(a, b)
11 # 你好 世界
12 
13 a, b = [1, 2]
14 print(a, b)
15 # 1 2
16 
17 a, b = [1, 2], [2, 3]
18 print(a, b)
19 # [1, 2] [2, 3]
20 
21 a, b = {'one': 1, 'two': 2}
22 print(a, b)
23 # two one
View Code

字典的嵌套

 1 dic = {
 2     'name': ['haha', 'heihei', 'youyou'],
 3     'py9': {
 4         'time': '1213',
 5         'learn_money': 19800,
 6         'address': 'CBD',
 7     },
 8     'age': 21
 9 }
10 dic['age'] = 56
11 dic['name'].append('666')
12 print(dic['name'])
13 print(dic)
14 
15 dic['name'][1] = dic['name'][1].upper()
16 print(dic)
17 
18 l = [1, 2, 'wusir']
19 l[2] = l[2].upper()
20 print(l)
21 
22 # female : 6
23 dic['py9']['female'] = 6
24 print(dic)
View Code