python学习之路 字典:当python中的索引行不通时(一)

列表和字典的差异:

列表:需要将一系列的值组合成数据结构并通过编号来访问各个值。

字典:通过名称开访问各个值,数据结构为映射。

字典为python中唯一的内置映射对象,不按顺序排列,只是储存在键下。

names=['Acile','Beth','Cray','Dee-Dee','Earl']//常规方法

numbers=['2341','2133','8766','6474','6844']

print(numbers[names.index('Beth')])

这段可以查找电话号码

字典由键及相对应的值组成,这种键值对称为项。

names=['Acile','Beth','Cray','Dee-Dee','Earl']//常规方法

numbers=['2341','2133','8766','6474','6844']

print(numbers[names.index('Beth')])

键必须独一无二。


函数dict

使用dict从其他映射或其他键值对序列中创建字典。

item=[('name','Gumby'),('age',42)]//键值对序列

d=dict(item)//d为字典

print(d)



print(d['name'])

使用一个映射实参来调用它,这将创建一个字典。其中包括制定映射中的所有项。

从映射创建字典的时候,如果该映射也是字典,可用copy方法。


基本字典操作

1,len(d)  字典d包含项的项数

2,d[k]返回于k键相关联的值

3,d[k]=v 将v的值关联到k键上

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

5,k in d检查字典d是否包含k键的项

字典和列表的不同之处:

键的类型:字典中的键为任何不变的数据,浮点数字符串和元组

自动添加:即便是字典中原来没有的键也可以给他赋值,会自动在字典中创造一个新的项。列表中不使用append等就不能给没有的元素赋值。

成员资格:k in d(字典)查找的为k键,不是k键对应的值。

v in l(列表)查找的是值而不是索引,索引时自动向下的。编号。

//检查字典是否包含指定的键比检查列表中是否包含值效率高。

字典中的键比列表中的值更容易获取。不会出现重复的现象。键和值一一对应,方便获取字典中的值。

[]为列表的表示符号,{}为字典的表示符号,反应自动映射关系类型。

 

先新创建一个空列表,在第42索引中给42个元素赋值为'fsdf',显然不行,因为没有在这样的元素,方法时使用append方法,或者在初始化列表的时候,将每一个索中添加none元素,使42索引有元素只是值为空。之后在添加42元素对应的值。

x=[]

x[42]='fsdf'


IndexError: list assignment index out of range

如果为字典,可行。在向42键插入值时,字典自动添加一个键,并为键赋上值。

x={}

x [42]='dsa'

>>> print(x)

{42: 'dsa'}

简单的数据库利用姓名查询手机号码家庭地址

people={

'王豆豆':{

'phone':'15667120913',

'addr':'青年路'

    },

'张钰泉':{

    'phone':'18091280223',

    'addr':'长安南路'
    },

'肖鹏飞':{

    'phone':'6546496496',

'addr':'莲湖区'

    }

}

labels={


'phone':'电话号码',

'addr':'家庭地址'

    }

name=input('请输入姓名:')

request=input("请输入想要查询的选项,电话号码请按1,家庭地址请按2")

if request=='1':key='phone'

if request=='2':key='addr'


if name in people: print("{}的{}是{}.".format(name,labels[key],people[name][key]))

运行效果图如下:


 将字符串格式设置功能用于字典

字典中包括各种inx,这样只需在格式字符转中提供所需信息即可,必须使用format_map来指出你将通过一个映射来提供所需的信息。

利用字符串格式设置功能用于字典显示Html文件。

 


 

关于字典方法的文章在python自学之路 字典(二)中详细叙述。

 

目录

列表和字典的差异:

函数dict

基本字典操作

简单的数据库利用姓名查询手机号码家庭地址

 将字符串格式设置功能用于字典

关于字典方法的文章在python学习之路 字典(二)中详细叙述。

猜你喜欢

转载自blog.csdn.net/YuQuanZhang/article/details/81222005