博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python-字典
阅读量:5057 次
发布时间:2019-06-12

本文共 3491 字,大约阅读时间需要 11 分钟。

非空即真,非0即真

# 实现同样的功能,代码越少越牛逼

a = []b = '' # not的意思是取反print(not b)# 运行结果为“True”c = ()d = 0e = Noneif a:    print('是真的')else :    print('是假的')# 运行结果为“是假的”

一、字典 map

字典是无序的

k - v(key - value)

# import this# age name sex addr phone qq email# k - v(key - value)# mapname1 = {
'name':'name1', 'age':18, 'sex':'unknow', 'addr':'天通苑', 'qq':12345678, 'email':'name1@qq.com', 'age':23 }print(name1)#运行结果:{'email': 'name1@qq.com', 'addr': '天通苑', 'sex': 'unknow', 'qq': 12345678, 'name': 'name1', 'age': 23}

1、增加

(1)第一种增加方式:如果没有就直接添加,如果有,就进行修改

name1['女朋友']='漂亮'print(name1)#运行结果:# {'addr': '天通苑', '女朋友': '漂亮', 'qq': 12345678, 'name': 'name1', 'sex': 'unknow', 'age': 23, 'email': 'name1@qq.com'}

(2)第二种:name1.setdefault()

setdefault()这种方式,如果key已经存在,那么就不会修改。

name1.setdefault('house','10套')print(name1)# 运行结果:{'sex': 'unknow', 'house': '10套', 'email': 'name1@qq.com', 'age': 23, 'addr': '天通苑', 'name': 'name1', '女朋友': '漂亮', 'qq': 12345678}

2、修改

name1['女朋友']='非常漂亮'print(name1)# 运行结果:{'name': 'name1', 'addr': '天通苑', 'email': 'name1@qq.com', 'sex': 'unknow', 'age': 23, 'qq': 12345678, '女朋友': '非常漂亮', 'house': '10套'}

3、删除

(1)name1.pop('女朋友')  指定key删除,删除的时候key不存在是会报错的

 
name1.pop('女朋友')print(name1)#运行结果:{'age': 23, 'qq': 12345678, 'sex': 'unknow', 'email': 'name1@qq.com', 'addr': '天通苑', 'name': 'name1', 'house': '10套'}
 

(2)del name1['age']  用del来删,删除的时候key不存在是会报错的

del name1['女朋友11']print(name1)#会报错如下#KeyError: '女朋友11'

(3)清空字典

name1.clear() print(name1) # 运行结果:{}

(4)随机删除一个key

name1.popitem()print(name1)# 运行结果:{'email': 'name1@qq.com', 'addr': '天通苑', 'name': 'name1', 'qq': 12345678, 'sex': 'unknow'}

4、取值

(1)若key存在,可获取到值,若key不存在,则会报错

print(name1['addr'])# 运行结果:天通苑print(name1['addr111'])# 运行结果:报错如下# KeyError: 'addr111'

(2)若key存在,可获取到值,若key不存在,则返回设置的返回值。如下所示

print(name1.get('email','无法获取到email'))# 运行结果:name1@qq.comprint(name1.get('emailqqqq','无法获取到email'))# 运行结果:无法获取到email

二、把一个字典增加到另外一个字典里

name1.upadate(name2)  将后面的字典加入到前面的字典中,即将name2加入到name1中

name2 = {
'computer':'三台'}name1.update(name2)# 把一个字典加入到另外一个字典里面print(name1)#{'age': 23, 'name': 'name1', 'email': 'name1@qq.com', 'addr': '天通苑', 'sex': 'unknow', 'qq': 12345678, 'computer': '三台'}print(name1.values())# dict_values([23, 'name1', 'name1@qq.com', '天通苑', 'unknow', 12345678, '三台'])print(name1.keys())# dict_keys(['age', 'name', 'email', 'addr', 'sex', 'qq', 'computer'])for k,v in name1.items(): print(k,v) # age # 23 # name # name1 # email # name1 @ qq.com # addr # 天通苑 # sex # unknow # qq # 12345678 # computer # 三台

 练习:

info =  [   {      'xiaohei':         {            'money':10000,            'cars':['Ben-z','audi','BMW'],            'info': {               'phone':186212312,               'age':36,}         }    },   {
'xiaohong': { 'house': { '朝阳':2, '海淀':3, '昌平':5 }, 'lan':['ch','en','jp'], } }]# info[0]['xiaohei']['cars'].append('新车')# print(info)# info[0]['xiaohei']['info']['addr'] = 'sdfsdf'# print(info)info[1]['xiaohong']['house']['海淀']+=2print(info)# [{'xiaohei': {'cars': ['Ben-z', 'audi', 'BMW'], 'info': {'age': 36, 'phone': 186212312}, 'money': 10000}}, {'xiaohong': {'house': {'朝阳': 2, '海淀': 5, '昌平': 5}, 'lan': ['ch', 'en', 'jp']}}]
View Code

三、高效循环字典的方式

d = {
'a':1,'b':2}# print(d.items())# for k,v in d.items():# print(k,v) #可以for k in d: print(k,d.get(k))# 输出结果:# a 1# b 2

 

转载于:https://www.cnblogs.com/Noul/p/9156105.html

你可能感兴趣的文章
一个小的日常实践——高速Fibonacci数算法
查看>>
机器学些技法(9)--Decision Tree
查看>>
drf权限组件
查看>>
输入月份和日期,得出是今年第几天
查看>>
【linux】重置fedora root密码
查看>>
pig自定义UDF
查看>>
Kubernetes 运维学习笔记
查看>>
spring security 11种过滤器介绍
查看>>
图解算法时间复杂度
查看>>
UI_搭建MVC
查看>>
一个样例看清楚JQuery子元素选择器children()和find()的差别
查看>>
代码实现导航栏分割线
查看>>
Windows Phone开发(7):当好总舵主 转:http://blog.csdn.net/tcjiaan/article/details/7281421...
查看>>
VS 2010打开设计器出现错误
查看>>
SQLServer 镜像功能完全实现
查看>>
Vue-详解设置路由导航的两种方法
查看>>
一个mysql主从复制的配置案例
查看>>
大数据学习系列(8)-- WordCount+Block+Split+Shuffle+Map+Reduce技术详解
查看>>
Win8 安装VS2012 和 Sql Server失败问题
查看>>
【AS3代码】播放FLV视频流的三步骤!
查看>>