字典是一种key-value的数据类型,字典里必须写Key和value,字典的优点是取数方便和速度快。
字典的特性:
      1.字典是无序的,因为它没有下标,用key来当索引,所以是无序的
      2.字典的key必须是唯一的,因为它是通过key来进行索引的,所以key不能重复,天生就去重

一、创建字典,字典的定义使用大括号{ },每个值用“,”隔开,key和value使用“:”分隔。

dict = {'name':'张凯','sex':'男','address':'火星','age':''}

二、字典的增删改查
2.1  新增

dict['phone']=17700000000    #增加一对key,value,如果key存在的话,会修改原来key对应的value值

dict.setdefault('name','xiao')   #如果key存在的话,并不会修改key对应value的值,只能新增

2.2  删除

dict.pop('name')  #指定key来删除

dict.popitem()   #随机删除一个key

del dict['phone'] #指定key来删除

dict.clear()   #清空字典

2.3  修改

dir ={'a':'b'}

dict.update(dir)  #合并字典,把dir字典的元素加入都dict字典中,更新字典值,如果key存在的话,就更新value,不存在就添加

dict['name']='xiao'  #如果key存在的话,会修改原来key对应的value值

2.4  查询

print(dict.get('name'))  #取不到key的话,会返回None

print(dict.get('yy','小黑'))  #如果取不到这个key的话,默认就是小黑

print(dict['yy'])  #如果key不存在,会报错

2.4.1  字典的内置方法

print(dict.keys())#获取字典所有的key

print(dict.values())#获取到字典所有的value

print(dict.items())#获取字典所有的key 和value

print(dict.update(new_infos))#更新字典值,如果key存在的话,就更新,不存在的话就添加
print(dict.items())   #输出一个list格式(非真正意义上的list)
#打印结果:
dict_items([('name', '张凯'), ('sex', '男'), ('address', '火星'), ('age', '')]) print(list(dict.items())) #把字典的key 和 value 转成一个多维list
#打印结果:
[('name', '张凯'), ('age', ''), ('address', '火星'), ('sex', '男')]

实例如下:

people = {
'ff':{
'age':18,
'money':100,
'clothes':'10套'
'hzp''n多',
'shose':['nike','addise','lv','chanle'] },
'rr':{
'金库':'100W',
'house':['三环','四环'],
'cars':{
'japan':['普拉多','兰德酷路泽'],
'usa':['林肯','凯迪拉克','福特'],
'china':['五菱宏光','qq','红旗'] }
}
} print(people['rr']['cars']['china'][1]) #取值QQ print(people['ff']['age']) #取值age a= people['ff']['shose']=('牧马人') #在ff的shose里增加牧马人 b = people['ff']['shose'].append('牧马人2') print(people['ff']['shose'])

三、循环字典
直接循环一个字典的话,那么循环的是字典的key

for p in people:
print(p)

循环的时候,同时取key和value

for k,v in people.items():  #循环的时候,同时取key和value

    print(k,'===>',v)

字典里面用in来判断的话,只是判断key是否存在

users ={
'niuhanyang':'',
'xiaohei':''
} print('' in users) #字典里面用in来判断的话,只是判断key是否存在 #打印结果:False

四、字典的排序

d ={'a':4,'b':2,'c':3}

#字典是无序的,直接对字典排序是不存在的

print(d.items())  #结果是一个二维数组

res = sorted(d.items(),key=lambda x:x[1])
#sorted排序是根据key来排序 print(res) for k,v in res: print(k,v)

五、修改字典的key
方法:先删除原键值对,保存值,然后以新键插入字典
格式:dict[nwekey]=dict.pop(key)

dic = {'id':1, 'xingming':"张三"}
dic['name'] = dic.pop('xingming') print(dic)
#输出:{'id': 1, 'name': '张三'}

执行语句:dict.pop('xingming')是删除 'xingming'所对应的键值对,返回 'xingming'对应的值;d['b'],相当于给字典新添加一个key,其value为d.pop('xingming')返回的值。

dic = {'id':1, 'xingming':"张三"}
value=dic.pop('xingming') print(value)
#输出:张三

5.1 循环删除字典里的键值对

lis = [{'id':1, 'name':"张三"},{'id':2, 'name':"张三"}]
for key,Indic in enumerate(lis):
for k in list(Indic.keys()):
if k=='id':
Indic.pop('id')
print(lis)
#输出:[{'name': '张三'}, {'name': '张三'}]

六、字典小练习

for i in range(3):
username = input('账号:').strip()
passwd =input('密码:').strip()
cpasswd =input('再次输入密码').strip()
if username == '' or passwd == '':
print('用户名密码不能为空')
elif username in users:
print('用户名已经被注册!')
elif passwd != cpasswd:
print('两次密码不一致')
else:
print('恭喜注册成功!')
users.setdefault(username,passwd)
#users[username]=passwd
break
else:
print('错误次数过多')
print(users)

Python---字典常用方法总结的更多相关文章

  1. python字典常用方法

    字典(Dictionary) 字典是一个无序.可变和有索引的集合.在 Python 中,字典用花括号编写,拥有键和值. 实例 创建并打印字典: thisdict = { "brand&quo ...

  2. python中列表和字典常用方法和函数

    Python列表函数&方法 Python包含以下函数: 序号 函数 1 cmp(list1, list2)比较两个列表的元素 2 len(list)列表元素个数 3 max(list)返回列表 ...

  3. 3. Python 字典 常用办法总结

    Python字典客储存任意类型的对象,如字符串.数字.元祖.列表.字典.bool等. 优点:取值方便,速度快 1.创建字典 字典由键(key)和对应值(value)成对组成. 字典也被称作关联数组或哈 ...

  4. Python字典 你必须知道的用法系列

    本文Python版本为3.7.X,阅读本文之前需了解python字典的基本用法. 介绍 字典(dict)是Python中内置的一个数据结构,由多个键值对组成,键(key)和值(value)用冒号分隔, ...

  5. python字典详细介绍

    字典的用途   字典是Python提供的一种常用的数据结构,它用于存放具有映射关系的数据. 字典相当于保存了两组数据,其中一组数据是关键数据,被称为 key:另一组数据可通过 key 来访问,被称为 ...

  6. Python字典和集合

    Python字典操作与遍历: 1.http://www.cnblogs.com/rubylouvre/archive/2011/06/19/2084739.html 2.http://5iqiong. ...

  7. python 字典排序 关于sort()、reversed()、sorted()

    一.Python的排序 1.reversed() 这个很好理解,reversed英文意思就是:adj. 颠倒的:相反的:(判决等)撤销的 print list(reversed(['dream','a ...

  8. python字典中的元素类型

    python字典默认的是string item={"browser " : 'webdriver.irefox()', 'url' : 'http://xxx.com'} 如果这样 ...

  9. python字典copy()方法

    python 字典的copy()方法表面看就是深copy啊,明显独立 d = {'a':1, 'b':2} c = d.copy() print('d=%s c=%s' % (d, c)) Code1 ...

  10. python 字典实现类似c的switch case

    #python 字典实现类似c的switch def print_hi(): print('hi') def print_hello(): print('hello') def print_goodb ...

随机推荐

  1. [UVA-11100] The Trip

    题目大意 大箱子能装小箱子,求在满足最少箱子的情况下,最小化每个箱子中最大的箱子个数. 解析 想到二分枚举箱子数,然后贪心的选择放进箱子的位置. 最优策略一定是将最大的 \(m\) 个先找出来,然后把 ...

  2. hihoCoder 1515 分数调查(带权并查集)

    http://hihocoder.com/problemset/problem/1515 题意: 思路: 带权并查集的简单题,计算的时候利用向量法则即可. #include<iostream&g ...

  3. 51nod 1020 逆序排列

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1020 题意: 思路: 一开始用了三重循环... 设f(n,k)表示n个数 ...

  4. vscode已有64位版本。

    我的操作系统是win10 Family版本. vscode不知道什么鬼,只要开启没动任何操作,cpu就占到30%. 于是我打开任务管理器,选中vscode进程->转到详细信息->结束cpu ...

  5. error LNK2019-无法解析的外部符号 _main-该符号在函数 ___tmainCRTStartup 中被引用

    问题分析: 因为Win32 console Application的入口函数是Main(),而Win32 Application的入口函数才是WinMain() 解决方案: 右键项目,打开[属性]页, ...

  6. Mybatis的SqlSession理解(一)

    SqlSession是Mybatis最重要的构建之一,可以认为Mybatis一系列的配置目的是生成类似JDBC生成的Connection对象的statement对象,这样才能与数据库开启“沟通”,通过 ...

  7. Android 关于虹软人脸识别SDK引擎使用总结

    虹软 最近开放了人脸识别的SDK引擎(免费的哦),刚好有Android版的,就体验了一波.下面来说说Android版的SDK使用心得: ArcFace 虹软人脸认知引擎简介 目前开放的版本有人脸比对( ...

  8. MySQL学习(十)

    要做:商城的留言板 一般情况,做留言板的显示很容易,直接select查询,再显示出来,但eschop中的留言板难点在于留言数据来自2张表,feedback表和comment表,我们需要把两张表中的内容 ...

  9. CC4 表达方式----输赢

    “我要赢,不管付出什么,我一定要赢!”当我赢得时候,“我赢了!(欢呼)”.当我输的时候“不,我不要输.不开心.(垂头丧气)”.这样的场景你是否熟悉呢?我的一生都在经历输赢.以前我会为了赢一场游戏,花费 ...

  10. seo中的竞价排名是什么

    seo中的竞价排名是什么 一.总结 一句话总结:竞价排名的基本特点是按点击付费,推广信息出现在搜索结果中(一般是靠前的位置),如果没有被用户点击,则不收取推广费. 搜索引擎的一种推广广告的方式 1.竞 ...