python基础day5

字典的初识:

  • why:列表能够储存大量的数据,但数据间的关联性不强。列表的查询速度比较慢。
  • 数据类型的分类(可变与不可变):
    • 可变(不可哈希)的数据类型:list dict set(集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),可是集合自己是不可哈希(因此集合作不了字典的键))
    • 不可变的数据类型(可哈希): str bool int tuple(该对象自己不可变),(作不可变类型作任何操做,方法都不会改变原对象)
  • 字典:{}括起来,以键值对形式储存的容器型数据类型。
    • 键必须是不可变的数据类型,最经常使用的是str int,键是不能改变且没法修改,而值能够改变,可修改,能够是任何对象
    • 键是不能重复的,而值能够重复。
    • 字典在3.5x版本以前(包括3.5)是无序的;字典在3.6x会按照初次创建字典的顺序排序的,学术上不认为是有序的。字典3.7x之后都是有序的。
    • 优势:查询速度很是快。
    • 缺点:以空间换时间,内存消耗巨大

删除集合的方法:set.discard()python

字典的建立方式:code

dic = dict((('i',1),('love',2),('you',3)))
print(dic)
>>>{'i': 1, 'love': 2, 'you': 3}
dic = dict(i=1,love=2,you=3)
print(dic)
>>>{'i': 1, 'love': 2, 'you': 3}
dic = dict({'i': 1, 'love': 2, 'you': 3})
print(dic)
>>>{'i': 1, 'love': 2, 'you': 3}

字典的增删改查:对象

/1. 增排序

#方法一,直接增长,已有键则改,无键则增长。
dic = {'name':'山就在那儿'}
dic['age'] = '18'
print(dic)
>>>{'name': '山就在那儿', 'age': '18'}

dic['age'] = '20'
print(dic)
>>>{'name': '山就在那儿', 'age': '20', 'sex': '男'}

#方法二,setdefault,有则不变,无则增长
dic.setdefault('able')
print(dic)
>>>{'name': '山就在那儿','age':'20','able':None}


dic.setdefault('hobby':python)
print(dic)
>>>{'name': '山就在那儿', 'age': '20', 'able':None,'hobby':python}

dic.setdefault('age':18)
print(dic)
>>>{'name': '山就在那儿', 'age': '20', 'able':None,'hobby':python}

/2 . 删:索引

#方法一,pop(),按照键删除,有返回值,返回的为字典的值,若是没有要删除的键,则会报错,但能够设置第二个两个参数,不管字典中是否有此键,都不会报错,如有此键则返回值为此键的值,若无此键则,返回值为第二个参数。
dic = {'name': '山就在那儿', 'age': '18'}
value = dic.pop('age')
print(dic)
>>>{'name': '山就在那儿'}
print(value)
>>>18
a = dic.pop('hobby')
print(a)
>>>KeyError: 'hobby'
a = dic.pop('hobby','没有此键值对')
print(a)
>>>没有此键值对
#方法二,del,若无键会报错,不推荐使用。
del dic['age']
#方法三,clear 清空
dic.claer()
print(dic)
>>>{}

/3. 改ip

dic['name'] = 18

添加多个元素的方法:dit.update() #见第六章内存

/4. 查:get

dic = {'name':'山就在那儿','hobby_list':['book','python']}
print(dic['hobby_list'])  #若没有此键则会报错,不建议用
>>>['book','python']
l1 = dic.get('hobby_list')   #若没有键则会返回None,能够定义第二个参数,第二个参数即为返回值
print(l1)
>>>['book','python']

#keys() 
print(dic.keys())   #会返回一个dict_keys类型,包含字典中全部的键,和列表类似,但不能索引,可转化成列表:list(),可遍历
>>>dict_keys(['name', 'hobby_list'])

#values()
print(dic.values())   #会返回一个dict_values类型,包含字典中全部的值,和列表类似,但不能索引,可转化成列表:list(),可遍历
>>>dict_values(['山就在那儿', ['book', 'python']])

#items()
print(dic.items())
>>>dict_items([('name', '山就在那儿'), ('hobby_list', ['book', 'python'])])
for k,v in dic.items():     #元祖的拆包  for i in dic.items()  print(i)   打印的结果数据为元祖
    print(k,v)
>>>name 山就在那儿
hobby_list ['book', 'python']

/5. 字典的推导式的方式略有不一样,主要是由于建立字典必须知足键-值的两个条件才能达成it

dit = {i:i+1 for i in range(4)}class

dit = {i:j for i,j in zip(range(4),’abcd’)}

/6. 字典的嵌套:

相关文章
相关标签/搜索