Python学习——Day05

python学习——Day05

0.数据类型的分类

  • 按照可变与不可变

    1.可变(不可哈希)的数据类型:list; dict; set(集合)

    2.不可变(可哈希)的数据类型:int; bool; str; tuple(元组)

所谓可变与不可变,是对一个对象进行操作,会不会改变对象原来的值。

例如 s = 'hello',,之后对字符串s的操作都不会改变内存中字符串‘hello’的值,而是产生了一个新的字符串,所以str类型是不可变的数据类型

对于列表 l = [1,2,3] 执行 l.append(4),,,列表L变为[1,2,3,4]。所以lis类型是可变的数据类型

1.字典

1.why

  • 列表可以存储大量数据,但数据间的关联性不强
  • 列表的查询速度较慢

2.what

1.基本知识点:

  • 容器型数据类型:dict.

  • 字典:以{}括起来,以键值对的形式存储的数据类型

dic = {
    '大壮':
    {'name':'大壮','age':'18','sex':'男'},
    '三年二班':
    ['小菜','小饭','小球']
}
  • 键: 上述代码中冒号之前的内容.

    键必须是不可变的数据类型,且唯一,常用: int str

    值可以是任意数据类型,对象.

  • 字典在3.5x及其之前版本中是无序的, 在3.6x版本会按照初次建立字典的顺序排列, 但是学术上不认为有序; 在3.7x以后是有序的\

  • 字典的缺点: 以空间换时间

  • 字典查询速度非常快,存储关联性的数据

2.字典的创建:

  • 方式一:
方式一:
dic = dict((('one', 1), ('two', 2), ('three', 3)))
print(dic)      #{'one': 1, 'two': 2, 'three': 3}
  • 方式二:
#方式二:
dic = dict(one = 1, two = 2, three = 3)
print(dic)
  • 方式三:
#方式三"
dic = dict({'one': 1, 'two': 2, 'three': 3})
print(dic)

3.字典的增删改查

dic = {'姓名':'qq', '年龄':'13'}
1.增
  • 直接增加
dic['性别'] = '男'       
#{'姓名': 'qq', '年龄': '13', '性别': '男'}
  • setdefault() 增加新的键, 直接增加; 增加已经存在的键, 则不改变
dic.setdefault('爱好','女')   
#{'姓名': 'qq', '年龄': '13', '性别': '男', '爱好': 女}
dic.setdefault('姓名','ww')   
#{'姓名': 'qq', '年龄': '13', '性别': '男'}
2.删
1.pop() ***

按照键去删除键值对,返回值是删除的键对应的值

dic.pop('姓名')   #{'年龄': '13'}
ret = dic.pop('姓名') #qq

如果设置第二个参数,则不论字典中是否含有此键, 都不会报错, 且没有此键时, 返回值是第二个参数

s = dic.pop('爱好','没有此键')    #没有此键
2.clear()

清空

dic.clear()     #{}
3.del
del dic['年龄']   #{'姓名': 'qq'}
3.改
dic['姓名'] = 'ww'    #{'姓名': 'ww', '年龄': '13'}
4.查
1.直接查
print(dic['姓名'])    #qq
2.get()***
s = dic.get('年龄')   #13

如果设置第二个参数,则不论字典中是否含有此键, 都不会报错, 且没有此键时, 返回值是第二个参数

s = dic.get('愛好','没有此键sb')   #没有此键sb

4.keys() values() items()

print(dic.keys())    
#dict_keys(['姓名', '年龄'])

print(dic.values())   
#dict_values(['qq', '13'])

print(dic.items())     
#dict_items([('姓名', 'qq'), ('年龄', '13')])
for i in dic.items():
    print(i,type(i))
#('姓名', 'qq') <class 'tuple'>
#('年龄', '13') <class 'tuple'>

返回两个元组

5.字典的嵌套

dic = {
   'name': 'wang',
    'age': 48,
    'wife': [{'name': 'zhang', 'age': 38}],
    'children': {'girl_first': '小苹果', 'girl_second': '小一','girl_three':'钉钉'}
}
print(dic['name'])      #wang
print(dic.get('name'))      #wang

print(dic.get('wife')[0])     
#{'name': 'zhang', 'age': 38}

print(dic.get('wife')[0].get('name'))       #zhang

print(dic.get('children').get('girl_three'))   
#钉钉
posted @ 2020-06-21 23:15  大明举重冠军  阅读(114)  评论(0)    收藏  举报