【学神-RHEL7】P6-Python字典的使用

本节所讲内容:

       1)字典的创建

       2)字典的基本操作

       3)字典的方法

在Python中通过字典可以通过查找某个特定的键,从而找到它的值

6.1          字典的创建

6.1.1       语法格式

{‘a’:123,‘b’:234,‘c’:345,……}

例:

>>>{‘rm‘:1511,‘find‘:1509,‘mk‘:1508}

{‘rm‘: 1511, ‘find‘:1509, ‘mk‘: 1508}

将字典赋值给一个变量可以实现轻松查找

>>> xuegod ={‘rm‘:1511,‘find‘:1509,‘mk‘:1508}

>>> xuegod[‘mk‘]

1508

注:在字典中的键是唯一的,而值并不唯一

 

6.1.2       通过dict函数创建字典

>>> Iphone =(‘Iphone‘,5999)

>>> LV = (‘LV‘,999)

>>> item =[Iphone,LV]

>>> d = dict(item)

>>> d

{‘LV‘: 999, ‘Iphone‘: 5999}

 

如果现在商场进了一批红塔山,通过dict可以快速添加字典里

>>> Hongtashan =(‘Hongtashan‘,7)

>>> item

[(‘Iphone‘, 5999), (‘LV‘,199999), (‘Hongtashan‘, 7)]

>>> d =dict(item)

>>> d

{‘LV‘: 199999, ‘Iphone‘:5999, ‘Hongtashan‘: 7}

 

通过dict方便对字典内容进行更新

 

 

4.2          字典的基本操作

字典的基本行为在很多方面与序列类似

假设现在有个字典名为d

len(d)            返回字典d中项(键-值对)的数量

d[]                 返回关联到键上的值

d[a]=b           将值b关联到键a上

del  d[k]        删除键为k的项

k  in  d         检查d中是否有含有键为k的项

 

>>> d

{‘LV‘: 999, ‘QiaQia‘: 9,‘Iphone‘: 5999}

>>> len(d)

3

>>> d[‘LV‘]

999

>>> d[‘LV‘]=1000

>>> d

{‘LV‘: 1000, ‘QiaQia‘: 9,‘Iphone‘: 5999}

>>> del d[‘LV‘]

>>> d

{‘QiaQia‘: 9, ‘Iphone‘: 5999}

>>> ‘QiaQia‘ in d

True

 

 

字典在脚本中的使用

创建一个小程序,查询公司内部员工的个人信息

[[email protected] ~]# vim people.py

#!/usr/bin/python

people = {

        ‘mv‘:{

                ‘phone‘: ‘2341‘,

                ‘addr‘: ‘BeiJing‘

        },

        ‘mk‘: {

                ‘phone‘: ‘9102‘,

                ‘addr‘: ‘HeBei‘

        },

        ‘find‘:{

                ‘phone‘: ‘3158‘,

                ‘addr‘: ‘ShanDong‘

        },

        ‘docker‘:{

                ‘phone‘: ‘4556‘,

                ‘addr‘: ‘ShanXi‘

        }

}

 

[[email protected] ~]# vim phone.py

#!/usr/bin/python

#coding=utf-8

import people

people = people.people

#变量名  模块名  模块中定义的字典名

labels = {

        ‘phone‘: ‘phone number‘,

        ‘addr‘: ‘address‘

}

 

while True:

        name = raw_input(‘Name: ‘)

        while name in people:

                request = raw_input(‘Phonenumber (p) or address (a)?‘)

 

                if request == ‘p‘ : key = ‘phone‘

                if request == ‘a‘ : key =‘addr‘

 

                print "%s‘s %s is%s." % \

                (name, labels[key],people[name][key])

                break

        else:

                YN = raw_input("The userdoes not exist,enter username again?(Y/N)")

                if YN == ‘N‘ :

                        print "Program isstopping!!!"

                        break

                if YN == ‘Y‘ : continue

 

执行结果:

[[email protected] ~]#python phone.py

Name: mk

Phone number (p) oraddress (a)?a

mk‘s address is HeBei.

Name: rn

The user does notexist,enter username again?(Y/N)N

Program is stopping!!!

 

 

6.3          字典的方法

1)  清空字典中的所有项clear

>>> example ={‘rm‘:1511,‘find‘:1509,‘mk‘:1508,‘docker‘:1506}

>>> example

{‘rm‘: 1511, ‘docker‘:1506, ‘find‘: 1509, ‘mk‘: 1508}

>>>example.clear()

>>> example

{}

>>> example = {}

 

2)创建一个具有相同项的新字典copy

>>> y =example.copy()

>>> y

{‘rm‘: 1511, ‘docker‘:1506, ‘find‘: 1509, ‘mk‘: 1508}

 

3)根据给定的键创建一个空值的字典fromkeys

>>>{}.fromkeys([‘mv‘,‘yum‘])

{‘mv‘: None, ‘yum‘: None}

 

默认的空值为None也可以用以下方法手动指定

>>>{}.fromkeys([‘mv‘,‘yum‘],‘(unknown)‘)

{‘mv‘: ‘(unknown)‘,‘yum‘: ‘(unknown)‘}

 

4)访问空值,不报错,返回None值get

>>> example ={‘rm‘:1511,‘find‘:1509,‘mk‘:1508,‘docker‘:1506}

>>> printexample.get(‘mv‘)

None

 

5)检查字典中是否包含特定键has_key,表达式d.has_key(k)等同于k  in  d

>>> example

{‘rm‘: 1511, ‘docker‘:1506, ‘find‘: 1509, ‘mk‘: 1508}

>>>example.has_key(‘mv‘)

False

 

6)以列表的方式返回字典中的所有项items

>>>example.items()

[(‘rm‘, 1511), (‘docker‘,1506), (‘find‘, 1509), (‘mk‘, 1508)]

 

与items相似的有iteritems方法,区别在于item返回的是一个列表,iteritems返回一个迭代器,方便对其调用

>>> it =y.iteritems()

>>> list(it)

[(‘rm‘, 1509), (‘docker‘,1506), (‘find‘, 1508), (‘mk‘, 1504)]

 

7)将字典中的键以列表方式返回keys,而iterkeys则返回针对键的迭代器

>>> example

{‘rm‘: 1511, ‘docker‘: 1506,‘find‘: 1509, ‘mk‘: 1508}

>>>example.keys()

[‘rm‘, ‘docker‘, ‘find‘,‘mk‘]

>>> a =example.keys()

>>> list(a)

[‘rm‘, ‘docker‘, ‘find‘,‘mk‘]

 

8)获取给定键的值,并将此项从字典中移除pop

>>> example

{‘rm‘: 1511, ‘docker‘: 1506,‘find‘: 1509, ‘mk‘: 1508}

>>> example.pop(‘rm‘)

1511

>>> example

{‘docker‘: 1506, ‘find‘: 1509,‘mk‘: 1508}

 

9)随机移除列表中的项popitem

>>>example.popitem()

(‘docker‘, 1506)

 

10)用一个字典更新另一个字典update

>>> example

{‘mk‘: 1508}

>>> xuegod ={‘rm‘:1511,‘find‘:1509,‘docker‘:1506}

>>>example.update(xuegod)

>>> example

{‘rm‘: 1511, ‘docker‘:1506, ‘find‘: 1509, ‘mk‘: 1508}

 

11)以列表的方式返回字典中的值values,返回值的迭代器itervalues

>>>example.values()

[1511, 1506, 1509, 1508]

 

>>> a=example.itervalues()

>>> list(a)

[1511, 1506, 1509, 1508]

 

学习过程中如果问题,请留言。更多内容请加:
学神IT-linux讲师-RM老师QQ:2805537762
学神IT-戚老师QQ:3341251313
学神IT-旭斌QQ:372469347
学神IT教育RHEL7交流群:468845589

 

 

时间: 2024-10-23 18:30:52

【学神-RHEL7】P6-Python字典的使用的相关文章

python 字典有序无序及查找效率,hash表

刚学python的时候认为字典是无序,通过多次插入,如di = {}, 多次di['testkey']='testvalue' 这样测试来证明无序的.后来接触到了字典查找效率这个东西,查了一下,原来字典在python内部是通过哈希表的顺序来排的,做了一些测试,比如di = {1:1,3:3,2:2,4:4,5:5} ,无论怎么改变键值对的顺序,print di 总是会{1: 1, 2: 2, 3: 3, 4: 4, 5: 5}.所以看起来当插入di['key']='value'时,这组键值对有时

Python 字典(Dictionary) get()方法

描述 Python 字典(Dictionary) get() 函数返回指定键的值,如果值不在字典中返回默认值. 语法 get()方法语法: dict.get(key, default=None) 参数 key -- 字典中要查找的键. default -- 如果指定键的值不存在时,返回该默认值值. 返回值 返回指定键的值,如果值不在字典中返回默认值None. 实例 以下实例展示了 get()函数的使用方法: #!/usr/bin/python dict = {'Name': 'Zara', 'A

Python字典高级使用方法汇总

Python字典高级使用方法汇总 字典(dictionary)是python中的一种非常灵活和强大的数据结构,可以完成很多操作.本文总结了一些除了基本的初始化.赋值.取值之外的常用的字典使用方法. 字典基础参考: [1]:http://www.w3cschool.cc/python/python-dictionary.html [2]:http://www.111cn.net/phper/python/56355.htm [3]:http://skyfen.iteye.com/blog/5675

python字典介绍

Python  字典(Dictionary) 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示: d = {key1 : value1, key2 : value2 } 键必须是唯一的,但值则不必. 值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组. 一个简单的字典实例: dict = {'Alice': '2341', 'Beth': '9102'

Python 字典(Dictionary) setdefault()方法

描述 Python 字典(Dictionary) setdefault() 函数和get()方法类似, 如果键不已经存在于字典中,将会添加键并将值设为默认值. 语法 setdefault()方法语法: dict.setdefault(key, default=None) 参数 key -- 查找的键值. default -- 键不存在时,设置的默认键值;存在则不设置. 返回值 该方法没有任何返回值. 实例 以下实例展示了 setdefault()函数的使用方法: #!/usr/bin/pytho

【学神-RHEL7】1-16-RAID5和RAID10创建&LVM管理

本节所讲内容: RAID5.RAID10配置 RAID删除   建立RAID5 1)     创建RAID5 2)     停止阵列,重新激活阵列 3)     再添加新的1G热备盘,扩展阵列容量,从3磁盘个扩展到4个 实验环境: sde1,sde2,sde3,sde5,sde6 个主分区  每个1G   [[email protected] ~]# ll/dev/sde* brw-rw---- 1 root disk8, 64 Dec 12 20:35 /dev/sde brw-rw----

Python字典增删操作技巧简述

Python编程语言是一款比较容易学习的计算机通用型语言.对于初学者来说,首先需要掌握的就是其中的一些基础应用.比如今天我们为大家介绍的Python字典的相关操作,就是我们在学习过程中需要熟练掌握的技巧. Python字典(Dictionary)是一种映射结构的数据类型,由无序的“键-值对”组成.字典的键必须是不可改变的类型,如:字符串,数字,tuple:值可以为任何Python数据类型. 1.新建Python字典 >>> dict = {} #新建一个空字典 >>>

Python字典方法copy()和deepcopy()的区别

1 from copy import deepcopy # import deepcopy模块 2 d = {} 3 d['name'] = ['black', 'guts'] # d = {'name': ['black', 'guts']} 4 c = d.copy() # c = {'name': ['black', 'guts']} 5 dc = deepcopy(d) # dc = {'name': ['black', 'guts']} 6 d['name'].append('whit

<转>python字典排序 关于sort()、reversed()、sorted()

一.Python的排序 1.reversed() 这个很好理解,reversed英文意思就是:adj. 颠倒的:相反的:(判决等)撤销的 print list(reversed(['dream','a','have','I'])) #['I', 'have', 'a', 'dream'] 2.让人糊涂的sort()与sorted() 在Python 中sorted是内建函数(BIF),而sort()是列表类型的内建函数list.sort(). sorted() sorted(iterable[,