python 基础之第八天--字典相关

zx

#####################创建字典######################################

In [11]: dict([(‘name‘,‘bob‘),(‘age‘,23),[‘qq‘,123456]])
Out[11]: {‘age‘: 23, ‘name‘: ‘bob‘, ‘qq‘: 123456}

In [12]: dict(((‘name‘,‘bob‘),(‘age‘,23),[‘qq‘,123456]))        ##dict函数
Out[12]: {‘age‘: 23, ‘name‘: ‘bob‘, ‘qq‘: 123456}

In [13]: aDict = {‘name‘:‘bob‘,‘age‘:23,‘qq‘:123456}       ##{}方式

In [14]: aDict
Out[14]: {‘age‘: 23, ‘name‘: ‘bob‘, ‘qq‘: 123456}

In [20]: {}.fromkeys([‘bob‘,‘herry‘,‘jerry‘],7)      ##不同的key,相同的值,‘7’为值value
  Out[20]: {‘bob‘: 7, ‘herry‘: 7, ‘jerry‘: 7}

############关于循环字典取值###############

In [22]: for key in aDict:        ##默认只取key
   ....:     print key
   ....:
qq
age
name

In [23]: for key in aDict:       ##key与value一起取
    print ‘%s-->%s‘ % (key,aDict[key])
   ....:
qq-->123456
age-->23
name-->bob
#########特殊格式输出################In [36]: aDict
Out[36]: {‘age‘: 23, ‘name‘: ‘bob‘, ‘qq‘: 123456}

In [37]: ‘%(name)s --> %(age)s‘ % aDict
Out[37]: ‘bob --> 23‘

##############删除(不常用),弹出与清空#############

#######aDict.pop##########
In [39]: aDict
Out[39]: {‘age‘: 23, ‘name‘: ‘bob‘, ‘qq‘: 123456}

In [41]: aDict.pop(‘age‘)  ###因为字典是无序的,所以需要指名pop哪个key
Out[41]: 23

In [42]: aDict
Out[42]: {‘name‘: ‘bob‘, ‘qq‘: 123456}

In [43]: aDict.popitem()       ###popitem()是随机弹的,几乎用不到,括号内不接受参数
  Out[43]: (‘qq‘, 123456)

In [46]: uu = aDict.copy()    #复制字典

In [47]: uu
  Out[47]: {‘name‘: ‘bob‘}

In [48]: uu.clear()          ###清空字典

In [49]: uu
  Out[49]: {}

##########字典的in 与not in #############

In [63]: aDict
Out[63]: {‘age‘: 23, ‘name‘: ‘herry‘}

In [64]: ‘age‘ in aDict          ###通过key查看是否在字典中,而不是value
Out[64]: True

#############字典长度##############

In [63]: aDict
Out[63]: {‘age‘: 23, ‘name‘: ‘herry‘}

In [66]: len(aDict)
Out[66]: 2

###########判断是否可以作为字典的key##########

In [67]: hash(‘naem‘)
Out[67]: -4166578487153698939

In [68]: hash(20)
Out[68]: 20

In [69]: hash((10,30))
Out[69]: 3713074054223687331

In [70]: hash([10,30])
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-70-2766bfecf01d> in <module>()
----> 1 hash([10,30])

TypeError: unhashable type: ‘list‘

总结:通过hash函数,如果不报错,就是可以作为字典的key,我们会发现key都是不可变对象

#############字典的拷贝################

In [71]: aDict
Out[71]: {‘age‘: 23, ‘name‘: ‘herry‘}

In [72]: bDict = aDict.copy()

In [73]: bDict
Out[73]: {‘age‘: 23, ‘name‘: ‘herry‘}

In [74]: aDict
Out[74]: {‘age‘: 23, ‘name‘: ‘herry‘}

In [75]: id(aDict)
Out[75]: 45174528

In [76]: id(bDict)
Out[76]: 45199760

###########字典的get 用法(常用)############

In [71]: aDict
Out[71]: {‘age‘: 23, ‘name‘: ‘herry‘}

In [77]: aDict.get(‘age‘)    ###get key为‘age’ 的值23
Out[77]: 23

In [78]: aDict.get(‘qq‘)      ###get 不存在的key,返回值None

In [79]: print aDict.get(‘qq‘)
None

In [80]: aDict.get(‘qq‘,‘not found‘)      ########自定义,如果get 的key存在,则返回对应的值,不存在则返回我们定义的值,这边是‘not found’
Out[80]: ‘not found‘

In [81]: aDict.get(‘age‘,‘not found‘)
Out[81]: 23

In [82]: aDict.get(‘name‘,‘not found‘)
Out[82]: ‘herry‘

备注:

In [83]: help(aDict.get)
  Help on built-in function get:

get(...)

      D.get(k[,d]) -> D[k] if k in D, else d. d defaults to None.

 
In [90]: aDict.setdefault(‘age‘,33)      ####setdefault key,存在,则返回相对应的值,不存在则增加key-value
Out[90]: 20

In [91]: aDict
Out[91]: {‘age‘: 20, ‘name‘: ‘herry‘}

In [92]: aDict.setdefault(‘qq‘,333333)
Out[92]: 333333

In [93]: aDict
Out[93]: {‘age‘: 20, ‘name‘: ‘herry‘, ‘qq‘: 333333}

In [94]: help(aDict.setdefault)
Help on built-in function setdefault:

setdefault(...)
    D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D

##########################################################

In [100]: aDict
Out[100]: {‘age‘: 20, ‘name‘: ‘herry‘, ‘qq‘: 333333}

In [96]: aDict.keys()
Out[96]: [‘qq‘, ‘age‘, ‘name‘]

In [97]: aDict.values()
Out[97]: [333333, 20, ‘herry‘]

In [98]: aDict.items()
Out[98]: [(‘qq‘, 333333), (‘age‘, 20), (‘name‘, ‘herry‘)]

实战案例:

################################################################

时间: 2024-08-24 19:26:11

python 基础之第八天--字典相关的相关文章

Python基础2 列表、字典、集合

本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 names = ['Alex',"Tenglan",'Eric'] 通过下标访问列表中的元素,下标从0开始计数 >>> names[0] 'Alex' >>> names[2] 'Eric' >>> names[-1] 'Eric'

python基础:元组、字典、深浅拷贝与函数

小生博客:http://xsboke.blog.51cto.com 小生 Q Q:1770058260 -------谢谢您的参考,如有疑问,欢迎交流 一. 元组(tuple) 1. 元组的特点 元组是固定的,不能修改也不能增减.因为元组不可变,所以更安全,如果可以,尽量不使用list而使用tuple 2.  格式 3.  可用参数 4.  元组的结构(以元组a为例) 当创建一个元组a时,将在内存中开辟一个名为a的内存,然后每个索引位置为一个命名空间,每个命名空间都有一个存储,而真实的数据就存在

python基础知识4(字典和函数)

# 字典 - 又称为(# hash,映射,关联数组) - "字" ---> 先找首字母,查到这个字的解释所在的页数; ## 字典的定义: d = {} d = {"key1":"value1"} d = {"key1":"value1","key2":"value3"} d = { "172.25.254.1": { "user&q

python基础教程总结3—字典

1.字典 1.1 字典类型与序列类型的区别: 存取和访问数据的方式不同. 序列类型只用数字类型的键(从序列的开始按数值顺序索引): 映射类型可以用其他对象类型作键(如:数字.字符串.元祖,一般用字符串作键),和序列类型的键不同,映射类型的键直接或间接地和存储数据值相关联. 映射类型中的数据是无序排列的.这和序列类型是不一样的,序列类型是以数值序排列的. 映射类型用键直接“映射”到值. 1.2 字典创建: 方法①: >>> dict1 = {} >>> dict2 = {

python基础10 字符串操作,字典操作,集合操作

本节内容: 字符串操作 字典操作 集合操作 字符串操作 概述 字符串是以''或""括起来的任意文本,比如'abc',"xyz"等等.请注意,''或""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c这3个字符. 如果字符串本身包含'怎么办?比如我们要表示字符串 I'm OK ,这时,可以用" "括起来表示: "I'm OK" 类似的,如果字符串包含",我们就可以用'

python基础===【字符串】所有相关操作

#字符串的相关操作 #基本操作 #+ 字符串连接操作 str1 = '来是come走是go' str2 = '点头yes摇头no' result = str1 + str2 print(result) #* 字符串复制操作 str1 = '天地不仁以万物为刍狗' result = str1 * 3 print(result) #[] 索引操作 str1 = '柳暗花明又一村' print(str1[1]) print(str1[-2]) #[::]取片操作 str1 = '山重水复疑无路' #获

python基础之列表,字典,集合

1,列表 (1) L1 =  [  ] # 创建空列表                    #需要注意的是,python和其他语言例如Java不一样,定义的时候不需要声明数据类型.具体原因是                        不用声明变量一样,Python不用去声明函数的返回类型,是由于其"若类型"的语言特性决定的.                        在其他语言中,例如C/C++语言中在存储一个数据之前,都需要在内存中给这个数据开辟一个固定的内存空间,   

python 基础知识四、字典

常见字典常量和操作 操作 解释 D = {} 空字典 D = {'spam':2 , 'egg':3} 两项目字典 D = {'food':{'ham':1,'egg':2}} 嵌套 D = dict.fromkeys(['a','b']) 其他构造技术 D = dict(zip(keylist, valslist)) 关键之.对应的对.键列表 D = dict(name='bob', age=42) D['eggs'] 以键进行索引运算 'eggs' in D  成员关系:键存在测试 D.ke

python基础一 ------如何根据字典值对字典进行&quot;排序&quot;

需求:{姓名:成绩} 的字典,按成绩进行排序 方法一:转化为元组,(91,"张三")的形式 ,用sorted()函数进行排序 方法二 :设置sorted() 中key的参数的值 1 #-*-coding:UTF-8-*- 2 #先生成一个随机字典 3 from random import randint 4 d= {x:randint(60,101) for x in "abcdxyz"} 5 print(d) 6 #方法一:元组形式 7 #把值放前面是因为sort