python中创建字典、客户分abc类_Python Day 5 基础数据类型(字典)

Python Day 5

版本区分:

字典在python3.5包含3.5之前都是无序,但是3.6之后是有序的。

可迭代:

可以被for循环依次取到数值

数据类型的分类

可变(不可哈希hash):list,dict,set     list = [111,222,333] (内容可变,hash不固定)

不可变(可哈希hash):str,turple,int,bool name = 'alex'     (内容不可变,hash值是固定值)

容器类:

容器类的数据类型: list,tuple,dict  l1 = [l1,True,'alex']

非容器类的数据类型:str,int,bool s1 = '[11,22,33]'

字典

基础数据类型之一,{} 以键值对的形式存储数据。

以{key:value} 形式,(映射)存储的大量的关系型数据,二分法查询数据,查询速度非常快。

key 键 : 唯一 必须是不可变的可哈希的数据类型。

value 值 :可以是任意数据类型。

查: 三种方法

字典的键通过hash表转换成数字,采用二分查找查询数字。

1、key查询方法(直接查询) dic['key']   注意:此方法查询key不存在时,会直接报错

dic = {'name':'ck','age':18}print(dic['name'])

2、get查询   dic.get('key') ,查询key不存在时默认返回None,可以自定义失败返回内容 (推荐使用)

dic = {'name':'ck','age':18}print(dic.get('name'))=============dic= {'name':'ck','age':18}print(dic.get('name1','key不存在'))

3、for循环查询。直接循环遍历dic 效果等同于 dic.keys(),   dic.values(),   dic.items()  类似于list但不是list的类型。 list(查询到的结果)可以转列表 可以遍历 没有索引

for key indic.keys():print(key)for value indic.values():print(value)for k,v in dic.items(): #[('name', '老男孩'), ('age', 56), ('hobby', 'women')]

print(k,v)

分别赋值概念

a, b= 1, 2a, b= ('alex', '34')

a, b= ['alex', '34']

有 如下 a= 1 b = 3,用一行代码将a b值互换。

a= 1b= 3a, b= b, a

增:两种方法

1、直接赋值 dic['socre'] = 100  ,(已存在key时,会覆盖值内容。同修改方法)

dic = {'name':'ck','age':18}

dic['socre'] = 100

print(dic)

2、dic.setdefault()

dic = {'name':'ck','age':18}

dic.setdefault('sex') #可以只添加值

dic.setdefault('sex','man') #添加key:value ,当key存在时,不论value是否存在,不进行任何操作

print(dic)

改:两种方法

1、赋值操作。 dic['name'] = cktest (当key存在时,赋值会覆盖原value,同增加方法。)

dic = {'name':'ck','age':18}

dic['name'] = 'cktest'

print(dic)

2、update。前提需要两个字典。 对照字典中所有键值对 覆盖添加目标字典中,对照字典不变。

dic = {'name':'ck','age':18}

dic2= {'sex':'man','age':'19'}

dic.update(dic2)#对dic字典与dic2进行比较更新,将dic2中的添加到dic中,将共有的key对应的value更新为dic2内容。dic2不变,只作为供应。

print(dic)

删:四种方法

1、pop 有返回值 返回值为删除的值。

dic = {'name':'ck','age':18}print(dic.pop('name'))print(dic)============ck

{'age': 18}

2、popitem    dic.popitem()   随机删除(由于字典在python3.5包含3.5之前都是无序,但是3.6之后是有序的。使用3.6版本删除会删除最后的) 有返回值,返回值为元组,里面是删除的键值对。

dic = {'name':'ck','age':18}print(dic.popitem())print(dic)=============('age', 18)

{'name': 'ck'}

3、clear   dic.clear()  清空字典。

dic = {'name':'ck','age':18}

dic.clear()print(dic)

结果:

{}

4、del

1.内存删除(删除整个字典)

dic = {'name':'ck','age':18}del dic

2.按照键,删除键值对 没有会报错

dic = {'name':'ck','age':18}del dic['name']print(dic)

fromkeys() 快速创建字典,以第一位作为键,第二位作为值,可迭代创建

a = fromkeys('abc','a')

字典嵌套

同列表嵌套相似,都是通过索引找到对应的值,对值进行操作。

dic ={'name_list': ['碗蓉', '俊俊', '爽妹'],'status': None,'personal_msg': {'name': '反面教材','age': 25,'hobby_list':['抽烟', '喝酒', '烫头'],

}

}#1,给dic添加一个键值对,学校:老男孩

dic["学校"] = "老男孩"

#2,将status对应的值改成True

dic['status'] =True#3,给name_list对应的列表追加一个元素:平平

dic['name_list'].append('平平')#4,给personal_msg对应的字典添加一个键值对sex:男

dic['personal_msg']['sex'] = '男'

#5,将hobby_list 对应的列表中的烫头改成唱歌。

dic['personal_msg']['hobby_list'][-1] = '唱歌'

print(dic)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值