我的Python成长之路---第二天---Python基础(8)---2016年1月9日(晴)

数据类型之字典

一、字典简介

字典dict(dictionary),在其他语言中也成为map,使用键-值(key-value)的形式存储和展现,具有极快的查找速度。

字典的定义

d = {‘key‘:value,...}

字典可以嵌套,value也可以使用列表等数据类型

字典通过键获取键所对应的值

d[key]

二、字典常用方法

1、clear(清除字典所有元素)

代码:

1 def clear(self): # real signature unknown; restored from __doc__
2         """ D.clear() -> None.  Remove all items from D.
3         清除所有元素
4         """
5         pass

示例:

>>> dic = {‘name‘:‘zhangxiaoyu‘, ‘age‘:35, ‘address‘:‘beijing china‘}
>>> dic.clear()
>>> dic
{}

2、copy(浅拷贝)

代码:

1 def copy(self): # real signature unknown; restored from __doc__
2         """ D.copy() -> a shallow copy of D
3         浅拷贝,返回的是一个新的字典对象
4         """
5         pass

示例:

>>> dic = {‘name‘:‘zhangxiaoyu‘, ‘age‘:35, ‘address‘:‘beijing china‘}
>>> dic2 = dic.copy()
>>> dic2
{‘age‘: 35, ‘address‘: ‘beijing china‘, ‘name‘: ‘zhangxiaoyu‘}

注意:拷贝和赋值dic2 = dic完全不一样,等到讲到深浅拷贝的时候再来探讨这个问题

3、fromkeys(创建新的字典对象)

代码:

1 @staticmethod # known case
2 def fromkeys(*args, **kwargs): # real signature unknown
3         """ Returns a new dict with keys from iterable and values equal to value.
4         用于创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值
5         """
6         pass

示例:

>>> dic = dict.fromkeys([‘name‘,‘age‘],10)
>>> dic
{‘age‘: 10, ‘name‘: 10}

4、get(获取键所对应的值)

代码:

1 def get(self, k, d=None): # real signature unknown; restored from __doc__
2         """ D.get(k[,d]) -> D[k] if k in D, else d.  d defaults to None.
3         获取键所对应的值如果存在返回值,如果不存在返回d所定义的值
4         k:key
5         d:默认值,如果不存在返回的值
6         """
7         pass

示例:

>>> dic = {‘name‘:‘zhangxiaoyu‘, ‘age‘:35, ‘address‘:‘beijing china‘}
>>> dic.get(‘name‘)
‘zhangxiaoyu‘
>>> dic.get(‘tel‘,‘110‘)
‘110‘
>>> dic.get(‘tel‘) 

注意:与d[key]取值不同的是,get方法如果key不存在则返回默认值,如果没定义返回的是None,而d[key]这种方式key不存在则会报错

>>> dic.get(‘tel‘)
>>> dic[‘tel‘]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: ‘tel‘

5、items(返回键值组成的元祖)

代码:

1 def items(self): # real signature unknown; restored from __doc__
2         """ D.items() -> a set-like object providing a view on D‘s items
3         返回键值组成的元祖列表,也就是同时返回键和值
4         """
5         pass

示例:

>>> dic = {‘name‘:‘zhangxiaoyu‘, ‘age‘:35, ‘address‘:‘beijing china‘}
>>> dic.items()
dict_items([(‘age‘, 35), (‘address‘, ‘beijing china‘), (‘name‘, ‘zhangxiaoyu‘)])

6、keys(返回字典的key)

代码:

1 def keys(self): # real signature unknown; restored from __doc__
2         """ D.keys() -> a set-like object providing a view on D‘s keys
3         返回字典的所有的key
4         """
5         pass

示例:

>>> dic = {‘name‘:‘zhangxiaoyu‘, ‘age‘:35, ‘address‘:‘beijing china‘}
>>> dic.keys()
dict_keys([‘age‘, ‘address‘, ‘name‘])

说明:2.X返回的直接是列表对象,3.X返回的dict_keys对象,但是也能通过in做是否存在的判断或循环

7、pop(删除指定key的元素,并返回key所对应的值)

代码:

1 def pop(self, k, d=None): # real signature unknown; restored from __doc__
2         """
3         D.pop(k[,d]) -> v, remove specified key and return the corresponding value.
4         If key is not found, d is returned if given, otherwise KeyError is raised
5         删除指定key的元素,并返回key所对应的值,如果不存在返回默认值
6         k:key
7         d:默认值,如果不存在返回的值
8         """
9         pass

示例:

>>> dic = {‘name‘:‘zhangxiaoyu‘, ‘age‘:35, ‘address‘:‘beijing china‘}
>>> dic.pop(‘name‘)
‘zhangxiaoyu‘
>>> dic
{‘age‘: 35, ‘address‘: ‘beijing china‘}
>>> dic.pop(‘tel‘,‘110‘)
‘110‘

8、popitem(删除元素)

代码

1 def popitem(self): # real signature unknown; restored from __doc__
2         """
3         D.popitem() -> (k, v), remove and return some (key, value) pair as a
4         2-tuple; but raise KeyError if D is empty.
5         删除元素并返回删除的元素key和value组成的元祖
6         """
7         pass

示例:

>>> dic = {‘name‘:‘zhangxiaoyu‘, ‘age‘:35, ‘address‘:‘beijing china‘}
>>> dic.popitem()
(‘age‘, 35)
>>> dic
{‘address‘: ‘beijing china‘, ‘name‘: ‘zhangxiaoyu‘}

注意:由于字典是无序的,所以使用这个方法删除的不一定是哪个元素,所以慎用

9、setdefault(设置默认值,这个方法要与get方法配合使用相当于get方法的d参数)

代码:

1 def setdefault(self, k, d=None): # real signature unknown; restored from __doc__
2         """ D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D
3         设置默认值,这个方法要与get方法配合使用相当于get方法的d参数,同样也适用于d[key]这种取值方法
4
5         """
6         pass

示例:

>>> dic = {‘name‘:‘zhangxiaoyu‘, ‘age‘:35, ‘address‘:‘beijing china‘}
>>> dic.setdefault(‘tel‘,‘110‘)
‘110‘
>>> dic.get(‘tel‘)
‘110‘
>>> dic
{‘age‘: 35, ‘tel‘: ‘110‘, ‘address‘: ‘beijing china‘, ‘name‘: ‘zhangxiaoyu‘}
>>> dic[‘tel‘]
‘110‘

感觉完全是设置了一个新的键值对

10、update(将另一个字典的键值添加到当前字典中)

代码:

 1 def update(self, E=None, **F): # known special case of dict.update
 2         """
 3         D.update([E, ]**F) -> None.  Update D from dict/iterable E and F.
 4         If E is present and has a .keys() method, then does:  for k in E: D[k] = E[k]
 5         If E is present and lacks a .keys() method, then does:  for k, v in E: D[k] = v
 6         In either case, this is followed by: for k in F:  D[k] = F[k]
 7         将另一个字典的键值添加到当前字典中
 8         不存在的键直接添加,存在的键将被覆盖
 9         """
10         pass

示例:

>>> dic = {‘name‘:‘zhangxiaoyu‘, ‘age‘:35, ‘address‘:‘beijing china‘}
>>> dic2 = {‘tel‘:‘110‘,‘name‘:‘zhangsan‘}
>>> dic.update(dic2)
>>> dic
{‘age‘: 35, ‘tel‘: ‘110‘, ‘address‘: ‘beijing china‘, ‘name‘: ‘zhangsan‘}

11、values(返回所有的值)

代码:

1 def values(self): # real signature unknown; restored from __doc__
2         """ D.values() -> an object providing a view on D‘s values
3         返回字典所有的值
4         """
5         pass

示例:

>>> dic.values()
dict_values([35, ‘beijing china‘, ‘zhangxiaoyu‘])

说明:2.X返回的直接是列表对象,3.X返回的dict_values对象,但是也能通过in做是否存在的判断或循环

时间: 2024-10-13 00:41:48

我的Python成长之路---第二天---Python基础(8)---2016年1月9日(晴)的相关文章

我的Python成长之路---第八天---Python基础(24)---2016年3月5日(晴)

多线程编程 什么是多线程,线程是操作系统能够进行运算调度的最小单位.他包含在进程之中,是进程中的实际运作单位.线程是进程中一个单顺序的空值六,一个进程可以并发多个线程,每个线程可以并行处理不同的任务. threading模块 python的标准库提供了两个模块用于多线程处理,_thread和threading,_thread是低级模块,threading是高级模块,是对_thread进行了封装. 启动一个线程就是把一个函数传入并创建Thread实例,然后调用start()开始执行: 线程有两种调

我的Python成长之路---第八天---Python基础(25)---2016年3月5日(晴)

多进程 multiprocessing模块 multiprocessing模块提供了一个Process类来代表一个进程对象 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 #!/usr/bin/env python3 # coding:utf-8 ''' Created on: 2016年3月5日 @author: 张晓宇 Email: [email protected] Versi

我的Python成长之路---第八天---Python基础(23)---2016年3月5日(晴)

socketserver 之前讲道德socket模块是单进程的,只能接受一个客户端的连接和请求,只有当该客户端断开的之后才能再接受来自其他客户端的连接和请求.当然我们也可以通过python的多线程等模块自己写一个可以同时接收多个客户端连接和请求的socket.但是这完全没有必要,因为python标准库已经为我们内置了一个多线程的socket模块socketserver,我们直接调用就可以了,完全没有必要重复造轮子. 我们只需简单改造一下之前的socket演示程序的服务端就可以了,客户端不用变 1

python成长之路——第二天

cpython:c解释器  .pyc(字节码)——机器码 jpython :java解释器   java字节码 ironpython :C#解释器   C#字节码 .... 上面的:编译完之后是字节码 pypy:自己的解释器  自己的字节码   机器码  编译完直接是机器码  直接运行机器码  快 类似java <python源码剖析> 编码: #-*- coding: utf-8 -*- 8位:2**8=256——Unicode(万国码)至少16位——utf-8:Unicode的压缩(不同类

我的Python成长之路---第一天---Python基础(1)---2015年12月26日(雾霾)

2015年12月26日是个特别的日子,我的Python成之路迈出第一步.见到了心目中的Python大神(Alex),也认识到了新的志向相投的伙伴,非常开心. 尽管之前看过一些Python的视频.书,算是有一点基础.但在这里我要保持空杯心态,一切从头开始.好了不多说,Let's Python!!!! 一.Python简介 Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言.目前Python已经成为实际上除了中国最流行的开发语

Python成长之路第二篇(1)_数据类型内置函数用法

数据类型内置函数用法int 关于内置方法是非常的多这里呢做了一下总结 (1)__abs__(...)返回x的绝对值 #返回x的绝对值!!!都是双下划线 x.__abs__() <==> abs(x) 例如: #!/usr/bin/python print "abs(-45) : ", abs(-45) print "abs(100.12) : ", abs(100.12) print "abs(119L) : ", abs(119L)

Python成长之路第二篇(2)_列表元组内置函数用法

列表元组内置函数用法list 元组的用法和列表相似就不一一介绍了 1)def append(self, p_object):将值添加到列表的最后 # real signature unknown; restored from __doc__ """ L.append(object) -- append object to end """ pass (2)def count(self, value): 值的出现次数 # real signature

Python成长之路第二篇(3)_字典的置函数用法

字典的置函数用法(字典dict字典中的key不可以重复) class dict(object): """ dict() -> new empty dictionary dict(mapping) -> new dictionary initialized from a mapping object's (key, value) pairs dict(iterable) -> new dictionary initialized as if via: d =

python成长之路第二篇(4)_collections系列

一.分别取出大于66的数字和小于66的数字 小练习:需求要求有一个列表列表中存着一组数字,要求将大于66的数字和小于66的数字分别取出来 aa = [11,22,33,44,55,66,77,88,99,90] dic = {} for i in aa :     ifi <= 66 :         if 'k1' in dic.keys():             dic['k1'].append(i)         else:             #创建只有一项元素的列表