列表和字典的差异:
列表:需要将一系列的值组合成数据结构并通过编号来访问各个值。
字典:通过名称开访问各个值,数据结构为映射。
字典为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学习之路 字典(二)中详细叙述。