MSCBSC 移动通信论坛
搜索
登录注册
网络优化工程师招聘专栏 4G/LTE通信工程师最新职位列表 通信实习生/应届生招聘职位
 

  • 阅读:1944
  • 回复:0
PYTHON学习笔记【字典介绍】
细阿哥
初级会员
鎵嬫満鍙风爜宸查獙璇


 发短消息    关注Ta 

积分 480
帖子 96
威望 729 个
礼品券 15 个
专家指数 0
注册 2009-2-25
专业方向  通信
回答问题数 1
回答被采纳数 0
回答采纳率 0%
 
发表于 2019-10-17 22:53:41  只看楼主 

1     字典介绍

python内置字典,dict的支持,相对于JAVAmap

Ø  使用键-(KEY-VALUE)存储,键和值缺一不可。

Ø  具有极快的查找速度。

Ø  使用大括号定义,键与值用冒号隔开,不同元素使用逗号隔开。

Ø  每个元素的键不可重复

Ø  字典没有顺序

Ø  通过键来访问

Ø  使用中括号访问,键不存在则报错

Ø  可以通过get访问,键不存在则返回null,不报错

Ø  在字典中,可变类型不能作为字典的键

In [1]: d={'michae':90,'bob':75,'tracy':85}     ‘定义一个字典

 

In [2]: d['michae']                                    ‘读取一个键的值

Out[2]: 90

 

In [3]: d['bob']

Out[3]: 75

 

In [6]: stus['name']='ww'               ‘修改键的值。

 

In [7]: stus

Out[7]: {'name': 'ww', 'age': 33, 'sex': 'man'}

 

In [11]: stus['add']                    ‘对应键不存在则报错

---------------------------------------------------------------------------

KeyError                                  Traceback (most recent call last)

<ipython-input-11-2dad78060bfd> in <module>

----> 1 stus['add']

 

KeyError: 'add'

 

In [9]: stus.get('name')         ‘通过get访问

Out[9]: 'ww'

 

In [10]: stus.get('add')        ‘键不存在,不报错,返回null

 

 

In [13]: stus['add']='beijing'             ‘字典的新增:不存在则新增,存在则修改

 

In [14]: stus

Out[14]: {'name': 'ww', 'age': 33, 'sex': 'man', 'add': 'beijing'}

 

In [15]: "name" in stus      ‘字典的查询

Out[15]: True

 

In [19]: stus['name']

Out[19]: 'ww'

 

In [17]: del stus['sex']     ‘字典的删除,clear()清除字典内容

 

In [18]: stus

Out[18]: {'name': 'ww', 'age': 33, 'add': 'beijing'}

 

 

字典常见函数

 

len()测量字典键值对的个数

In [50]: dict={"name":'ls',"sex":"m"}

 

In [51]: len(dict)

Out[51]: 2

 

keys()返回字典所有KEY的列表

 

In [53]: dict

Out[53]: {'name': 'ls', 'sex': 'm'}

 

In [54]: dict.keys()

Out[54]: dict_keys(['name', 'sex'])

 

 

values()返回字典所有值的列表

 

In [53]: dict

Out[53]: {'name': 'ls', 'sex': 'm'}

 

In [55]: dict.values()

Out[55]: dict_values(['ls', 'm'])

 

items()返回字典键-

 

In [56]: dict.items()

Out[56]: dict_items([('name', 'ls'), ('sex', 'm')])

 

 

 

stu={"name":"lisi","age":33}

for item in stu.items():
  
print(item)
print("="*30)
for item in stu.items():
  
print("key:%s\tvalue:%s"%item)       #字典两部分,直接分开输出

 

D:\python\day4>python 02-字典函数.py

('name', 'lisi')                            ‘返回元组

('age', 33)

==============================

keyname       valuelisi

keyage        value33

 

has_key判断键是否在字典中,python2中有效

 

stu = {"name": "lisi", "age": 33}
print("=" * 30)
key =
"name"
if key in stu:
   
print("%s在字典中" % key)

print("=" * 30)

if stu.has_key(key):
   
print("%s在字典中" % key)

集合的读取

names=['zs','ls','ww','sl']
name=
'hello world'
name2=('zs','ls','ww','sl')
j=
0
i=0
print("序号\t姓名")

for i in name2:
  
print("%d\t%s"%(j,i))
   j+=
1

'''
while i < len(names):
   print("
下标号:%d,值:%s"%(i,names[i]))
   i+=1
'''
print("="*30)
for i,item in enumerate(names,1):   #enumerate枚举,enumerate(names,1)表示从1开始计数
  
print("%d\t%s"%(i,item))

2    可变类型和不可变类型

不可变类型:数值(值不可变,引用可变)、字符串、元组

可变类型:列表,字典

在字典中,可变类型不能作为字典的键

 

In [7]: a=[1,2]

 

In [8]: b=a

 

In [9]: b

Out[9]: [1, 2]

 

In [10]: b+=[3,4]

 

In [11]: b

Out[11]: [1, 2, 3, 4]

 

In [12]: a

Out[12]: [1, 2, 3, 4]

 

In [13]: del a

 

In [14]: del b

 

In [15]: a=[1,2]

 

In [16]: b=a

 

In [17]: b=b+[3,4]      #可变类型中a+=b <> a=a+b  ,不可变类型中a+=b 等于 a=a+b

 

In [18]: a

Out[18]: [1, 2]

 

In [19]: b

Out[19]: [1, 2, 3, 4]


微信扫描分享本文到朋友圈
微信扫描二维码,手机阅读更便捷
每天分享朋友圈可获得威望奖励(前两次)

对本帖内容的看法? 我要点评

 
[充值威望,立即自动到帐] [VIP贵宾权限+威望套餐] 另有大量优惠赠送活动,请光临充值中心
充值拥有大量的威望和最高的下载权限,下载站内资料无忧

快速回复主题    
标题
内容
 上传资料请点左侧【添加附件】



当前时区 GMT+8, 现在时间是 2019-11-15 16:52:51
渝ICP备11001752号  Copyright @ 2006-2016 mscbsc.com  本站统一服务邮箱:mscbsc@163.com

Processed in 0.058274 second(s), 13 queries , Gzip enabled
TOP
清除 Cookies - 联系我们 - 移动通信网 - 移动通信论坛 - 通信招聘网 - Archiver