python字典

所不同的是列表的索引只是从0开始的有序整数,不可重复;而字典的索引实际上在字典里应该叫键,虽然字典中的键和列表中的索引一样是不可重复的,但键是无序的,也就是说字典中的元素是没有顺序而言的,字典中的元素任意排列但不影响字典的使用

字典的键可以是数字,字符串,列表,元组.....几乎什么都可以,一般用字符串来做键,键与键值用冒号分割,在列表中是通过索引来访问元素,而在字典中是通过键来访问键值,因为字典按“键”来寻值而不同于列表的按“索”寻值,所以字典的操作方法与列表有区别

首先创建一个字典实验一下,执行命令

dicttemp = {'name':'Sam','age':'18','sex':'male' }

这样就建立了一个简单的dicttemp字典,因为字典的键值是无序的,所以插入一个数据无需insert之类的方法,直接定义即可,执行命令:

dicttemp['college'] = 'tsinghua'

dicttemp['nation'] = 'china'

如需添加资料,只需要继续这样添加即可,如果发现资料有误,修改字典,同样也是直接定义,执行命令:

dicttemp['college'] = 'PKU'

如果要删除某个元素,可以使用del命令,del命令可以理解为取消分配给变量的内存空间,执行命令:

del dicttemp['nation']

del命令不止是可以删除字典元素,类似字典元素,用户定义的变量都可以用del来删除。它可以删除数字变量,字符串变量,列表,元组,字典等等

字典还有一些独特的操作,以下是字典中最常用的操作:

1.dict.keys()    返回一个包含字典所有key的列表

2.dict.values()    返回一个包含字典所有value的列表

3.dict.items()    返回一个包含所有(键,值)元组的列表

4.dict.clear()    删除字典中所有的元素

5.dict.get(key)    返回字典中key所对应的值

编写一个showdict.py来实验一下:

showdict.py代码如下:

# coding: utf-8
__author__ = 'www.py3study.com'
class showdict(object):
    '''该类用来展示字典的使用方法'''
    def __init__(self):
        self.spiderman = self.createdict()  #创建字典
        self.insertdict(self.spiderman)     #插入数据
        self.modifydict(self.spiderman)     #修改数据
        self.operationdict(self.spiderman)  #字典操作
        self.deletedict(self.spiderman)     #删除元素

    def createdict(self):
        print(u'创建字典:')
        print(u"执行命令spiderman = {'name':'peter parker','sex':'male','nation':'americ','college':'mit'}")
        spiderman = {'name':'peter parker','sex':'male','nation':'americ','college':'mit'}
        self.showdict(spiderman)
        return spiderman

    def showdict(self, spiderman):
        print(u"显示字典")
        print(u"spiderman =")
        print(spiderman)
        print('\n')

    def insertdict(self, spiderman):
        print(u"字典中添加键age,值为31")
        print(u"执行命令spiderman['age'] = 31")
        spiderman['age'] = 31
        self.showdict(spiderman)

    def modifydict(self,spiderman):
        print(u"字典修改键'college'的值为'empire state university'")
        print(u"执行命令 spiderman['college'] = 'empire state university'")
        spiderman['college'] = 'empire state university'
        self.showdict(spiderman)

    def operationdict(self,spiderman):
        print(u"字典的其它操作方法")
        print(u"##############################")
        print(u"显示字典所有的键,keylist = spiderman.keys()")
        keylist = spiderman.keys()
        print(u"keylist =")
        print(keylist)
        print('\n')
        print(u"显示字典所有键的值,valuelist = spiderman.values()")
        valuelist = spiderman.values()
        print(u"valuelist =")
        print(valuelist)
        print('\n')
        print(u"显示字典所有键和值的元组,itemlist = spiderman.items()")
        itemlist = spiderman.items()
        print(u"itemlist =")
        print(itemlist)
        print('\n')
        print(u"取字典中键为college的值,college = spiderman.get('college')")
        college = spiderman.get('college')
        print(u"college = {}".format(college))
        print('\n')

    def deletedict(self,spiderman):
        print(u"删除字典中键为nation的值")
        print(u"执行命令 del(spiderman['nation'])")
        del(self.spiderman['nation'])
        self.showdict(spiderman)
        print(u"清空字典中所有的值")
        print(u"执行命令 spiderman.clear()")
        self.spiderman.clear()
        self.showdict(spiderman)
        print(u"删除字典")
        print(u"执行命令 del(spiderman)")
        del(spiderman)
        print(u"显示spiderman")
        try:
            self.showdict(spiderman)
        except  NameError:
            print(u"spiderman 未被定义")

if __name__ == '__main__':
    sd = showdict()

运行结果如下:

"C:Program Files (x86)python3.6python.exe" D:/python3_study/showdict.py 创建字典: 执行命令spiderman = {'name':'peter parker','sex':'male','nation':'americ','college':'mit'} 显示字典 spiderman = {'name': 'peter parker', 'sex': 'male', 'nation': 'americ', 'college': 'mit'} 字典中添加键age,值为31 执行命令spiderman['age'] = 31 显示字典 spiderman = {'name': 'peter parker', 'sex': 'male', 'nation': 'americ', 'college': 'mit', 'age': 31} 字典修改键'college'的值为'empire state university' 执行命令 spiderman['college'] = 'empire state university' 显示字典 spiderman = {'name': 'peter parker', 'sex': 'male', 'nation': 'americ', 'college': 'empire state university', 'age': 31} 字典的其它操作方法 ############################## 显示字典所有的键,keylist = spiderman.keys() keylist = dict_keys(['name', 'sex', 'nation', 'college', 'age']) 显示字典所有键的值,valuelist = spiderman.values() valuelist = dict_values(['peter parker', 'male', 'americ', 'empire state university', 31]) 显示字典所有键和值的元组,itemlist = spiderman.items() itemlist = dict_items([('name', 'peter parker'), ('sex', 'male'), ('nation', 'americ'), ('college', 'empire state university'), ('age', 31)]) 取字典中键为college的值,college = spiderman.get('college') college = empire state university 删除字典中键为nation的值 执行命令 del(spiderman['nation']) 显示字典 spiderman = {'name': 'peter parker', 'sex': 'male', 'college': 'empire state university', 'age': 31} 清空字典中所有的值 执行命令 spiderman.clear() 显示字典 spiderman = {} 删除字典 执行命令 del(spiderman) 显示spiderman spiderman 未被定义

python的基本变量类型就是这些,其它的类型几乎都是由这些基本类型组合而来(python的数据类型还有None和boolean)

字典的键和键值可以是任何类型,在没有什么特殊要求的情况下尽可能地使用字符串作为键,如果把键设置的太复杂,那也就失去了字典的意义了

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏华章科技

Python 3 入门,看这篇就够了

链接:https://shockerli.net/post/python-study-note/

3766
来自专栏xingoo, 一个梦想做发明家的程序员

const修饰的双重指针赋值解惑

在c程序中,我们可能经常会使用到指针之间的赋值。 传统的赋值操作: char *cp = "c"; const char *ccp; ccp = cp; pri...

2199
来自专栏kalifaの日々

C语言中static,const和static const 的区别

在第一次调用test()时,如果static int b没有被我赋初值,也会被默认赋值成0。然后执行自增运算,所以输出1。第二次调用test()时如果是普通的变...

781
来自专栏zingpLiu

面向对象(三)【类的特殊成员及高级特性】

前面两篇文章介绍了类与对象的基本概念和类中的一些成员,本篇主要介绍类和对象的特殊成员及一些高级特性。

943
来自专栏JetpropelledSnake

Python入门之函数的介绍/定义/定义类型/函数调用/Return

 本篇目录:     一、 函数的介绍     二、 函数的定义     三、 定义函数的三种类型     四、 函数调用的阶段     五、 Return返回...

3755
来自专栏IT可乐

深入理解计算机系统(3.5)------特殊的算术操作指令

  在上一篇博客 算术和逻辑操作 我们介绍了如下图几种常用的算术逻辑指令,但是大家发现没,这几种指令如果在 IA32 上只能操作32位寄存器,比如我用乘法指令I...

1977
来自专栏静晴轩

JavaScript字符串间的比较

字符串在JavaScript中几乎无处不在,在你处理用户的输入数据的时候,在读取或设置DOM对象的属性时,在操作cookie时,当然还有更 多…。@雪斌在Jav...

6439
来自专栏Linux驱动

25.C++- 泛型编程之函数模板(详解)

本章学习: 1)初探函数模板 2)深入理解函数模板 3)多参函数模板 4)重载函数和函数模板 ---- 当我们想写个Swap()交换函数时,通常这样写: voi...

2894
来自专栏前端布道

JavaScript之Promise对象

Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,...

1123
来自专栏大前端_Web

详解javascript作用域和闭包

版权声明:本文为吴孔云博客原创文章,转载请注明出处并带上链接,谢谢。 https://blog.csdn.net/wkyseo/article/deta...

1184

扫码关注云+社区

领取腾讯云代金券