Python dictionary 字典

Posted 薏米*

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python dictionary 字典相关的知识,希望对你有一定的参考价值。

Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等其他容器模型。

 

一、创建字典
字典由键和对应值成对组成。字典也被称作关联数组或哈希表。基本语法如下:

dict = {\'Alice\': \'2341\', \'Beth\': \'9102\', \'Cecil\': \'3258\'}

也可如此创建字典

dict1 = { \'abc\': 456 }
dict2 = { \'abc\': 123, 98.6: 37 }

注意:
每个键与值用冒号隔开(:),每对用逗号,每对用逗号分割,整体放在花括号中({})。
键必须独一无二,但值则不必。
值可以取任何数据类型,但必须是不可变的,如字符串,数或元组。


二、访问字典里的值(查)
把相应的键放入熟悉的方括弧,如下实例:

复制代码
dict = {\'Name\': \'Zara\', \'Age\': 7, \'Class\': \'First\'};

print "dict[\'Name\']: ", dict[\'Name\'];
print "dict[\'Age\']: ", dict[\'Age\'];
#以上实例输出结果:
#dict[\'Name\']:  Zara
#dict[\'Age\']:  7
复制代码

如果用字典里没有的键访问数据,会输出错误如下:

dict = {\'Name\': \'Zara\', \'Age\': 7, \'Class\': \'First\'};

print "dict[\'Alice\']: ", dict[\'Alice\'];

以上实例输出结果:

#KeyError: \'Alice\'[/code]

 

三、修改字典(改,增)
向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对如下实例:

复制代码
dict = {\'Name\': \'Zara\', \'Age\': 7, \'Class\': \'First\'};

dict[\'Age\'] = 8; # update existing entry
dict[\'School\'] = "DPS School"; # Add new entry

 
print "dict[\'Age\']: ", dict[\'Age\'];
print "dict[\'School\']: ", dict[\'School\'];
#以上实例输出结果:
#dict[\'Age\']:  8
#dict[\'School\']:  DPS School
复制代码

 

四、删除字典元素(删)

字典名.pop(key)
能删单一的元素也能清空字典,清空只需一项操作。
显示删除一个字典用del命令,如下实例:

复制代码
dict = {\'Name\': \'Zara\', \'Age\': 7, \'Class\': \'First\'};

del dict[key]; # 删除键是\'Name\'的条目
dict.clear();     # 清空词典所有条目
del dict ;        # 删除词典

print "dict[\'Age\']: ", dict[\'Age\'];
print "dict[\'School\']: ", dict[\'School\'];
#但这会引发一个异常,因为用del后字典不再存在:
dict[\'Age\']:
复制代码

五、字典键的特性
字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。
两个重要的点需要记住:
1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:

dict = {\'Name\': \'Zara\', \'Age\': 7, \'Name\': \'Manni\'};

print "dict[\'Name\']: ", dict[\'Name\'];
#以上实例输出结果:
#dict[\'Name\']:  Manni

2)键必须不可变,所以可以用数,字符串或元组充当,所以用列表就不行,如下实例:

dict = {[\'Name\']: \'Zara\', \'Age\': 7};

print "dict[\'Name\']: ", dict[\'Name\'];
#以上实例输出结果:
#TypeError: list objects are unhashable

六、字典内置函数&方法
Python字典包含了以下内置函数:

cmp(dict1, dict2)  #比较两个字典元素。
len(dict)              #计算字典元素个数,即键的总数。
str(dict)              #输出字典可打印的字符串表示。
type(variable)     #返回输入的变量类型,如果变量是字典就返回字典类型。        

 

 

Python字典包含了以下内置方法:

复制代码
radiansdict.clear()    #删除字典内所有元素
radiansdict.copy()    #返回一个字典的浅复制
radiansdict.fromkeys()    #创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
radiansdict.get(key, default=None)    #返回指定键的值,如果值不在字典中返回default值
radiansdict.has_key(key)    #如果键在字典dict里返回true,否则返回false
radiansdict.items()    #以列表返回可遍历的(键, 值) 元组数组
radiansdict.keys()    #以列表返回一个字典所有的键
radiansdict.setdefault(key, default=None)    #和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设为default
radiansdict.update(dict2)    #把字典dict2的键/值对更新到dict里
radiansdict.values()    #以列表返回字典中的所有值
复制代码

 

七、字典练习代码

复制代码
print(\'\'\'|---欢迎进入通讯录程序---|
|---1、 查询联系人资料---|
|---2、 插入新的联系人---|
|---3、 删除已有联系人---|
|---4、 退出通讯录程序---|\'\'\')
addressBook={}#定义通讯录
while 1:
    temp=input(\'请输入指令代码:\')
    if not temp.isdigit():
        print("输入的指令错误,请按照提示输入")
        continue
    item=int(temp)#转换为数字
    if item==4:
        print("|---感谢使用通讯录程序---|")
        break
    name = input("请输入联系人姓名:")
    if item==1:
        if name in addressBook:
            print(name,\':\',addressBook[name])
            continue
        else:
            print("该联系人不存在!")
    if item==2:
        if name in addressBook:
            print("您输入的姓名在通讯录中已存在-->>",name,":",addressBook[name])
            isEdit=input("是否修改联系人资料(Y/N):")
            if isEdit==\'Y\':
                userphone = input("请输入联系人电话:")
                addressBook[name]=userphone
                print("联系人修改成功")
                continue
            else:
                continue
        else:
            userphone=input("请输入联系人电话:")
            addressBook[name]=userphone
            print("联系人加入成功!")
            continue

    if item==3:
        if name in addressBook:
            del addressBook[name]
            print("删除成功!")
            continue
        else:
            print("联系人不存在")

转载:https://www.cnblogs.com/scios/p/8108243.html

以上是关于Python dictionary 字典的主要内容,如果未能解决你的问题,请参考以下文章

python 字典(dictionary)

Python 字典(Dictionary) update()方法

python 字典 dictionary

Python 字典(Dictionary)

Python 字典(Dictionary)

Python dictionary 字典