python iter,迭代器&dict,字典详解

可以直接作用于for循环的对象统称为可迭代对象(Iterable)。

可以被next()函数调用并不断返回下一个值的对象称为迭代器(Iterator)。

所有的Iterable均可以通过内置函数iter()来转变为Iterator。

迭代器为类序列对象提供了一个类序列的接口。python的迭代无缝地支持序列对象,而且它还允许程序员迭代非序列类型,包括用户定义的对象。迭代器用起来很灵巧,你可以迭代不是序列但表现处序列行为的对象,例如字典的键、一个文件的行,等等。迭代器的作用如下:

>>> i=iter(‘abcd‘)
>>> print i.next()
a
>>> print i.next()
b
>>>print i.next()
c

  

s = {‘one‘:1,‘two‘:2,‘three‘:3}
print s
{‘three‘: 3, ‘two‘: 2, ‘one‘: 1}
>>> m = iter(s)
>>> print m.next()
three
>>> print m.next()
two
>>> print m.next()
one

dict {‘key‘:value,‘key‘:value}

查询可以用get方法 ,也可以直接通过key查询,不过这样如果不存在这个key将会报错,而get会给出None 

可以直接添加或者更改dict,dict(‘key‘)=value

可使用pop方法 dict.pop(key[,default]),通过key值删除dict内元素,并返回被删除key对应的value。若key不存在,且default值未设置,则返回KeyError异常

可使用clear方法dict.clear()清空dict

values() / itervalues() 方法:返回dict 的value值,

 itervalues() 方法替代 values() 方法,迭代效果完全一样。而 itervalues() 方法不会转换,它会在迭代过程中依次从 dict 中取出 value,

所以 itervalues() 方法比 values() 方法节省了生成 list 所需的内存。

items()方法

>>> s = {‘one‘:1,‘two‘:2,‘three‘:3}
>>> d = items(s)
>>> d=s.items()
>>> print d
[(‘three‘, 3), (‘two‘, 2), (‘one‘, 1)]

和 values() 有一个 itervalues() 类似, items() 也有一个对应的 iteritems()

iteritems() 不把dict转换成list,而是在迭代过程中不断给出 tuple,所以, iteritems() 不占用额外的内存

 

时间: 2024-10-14 11:22:09

python iter,迭代器&dict,字典详解的相关文章

Python之dict字典详解

Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,字典是另 一种可变容器模型,且可存储任意类型对象.具有极快的查找速度. 字典是一种通过名字或者关键字引用的得数据结构,其键可以是数字.字符串.元组,这种结构类型也称之为映射.字典类型是Python中唯一內建的映射类型,基本的操作包括如下: (1) len() : 返回字典中 键:值对 的数量 (2) d[k] : 返回关键字对应的值: (3) d[k] = v : 将值关联到键值k上: (4) d

python dict 字典详解

和列表相同,字典也是许多数据的集合,属于可变序列类型.不同之处在于,它是无序的可变序列,其保存的内容是以“键值对”的形式存放的. 字典中,习惯将各元素对应的索引称为键(key),各个键对应的元素称为值(value),键及其关联的值称为“键值对”. 字典类型很像学生时代常用的新华字典.我们知道,通过新华字典中的音节表,可以快速找到想要查找的汉字.其中,字典里的音节表就相当于字典类型中的键,而键对应的汉字则相当于值. 表 1 Python 字典特征 主要特征 解释 通过键而不是通过索引来读取元素 字

Python中的高级数据结构详解

这篇文章主要介绍了Python中的高级数据结构详解,本文讲解了Collection.Array.Heapq.Bisect.Weakref.Copy以及Pprint这些数据结构的用法,需要的朋友可以参考下 数据结构 数据结构的概念很好理解,就是用来将数据组织在一起的结构.换句话说,数据结构是用来存储一系列关联数据的东西.在Python中有四种内建的数据结构,分别是List.Tuple.Dictionary以及Set.大部分的应用程序不需要其他类型的数据结构,但若是真需要也有很多高级数据结构可供选择

Python中 if __name__ == '__main__': 详解

一个python文件就可以看作是一个python的模块,这个python模块(.py文件)有两种使用方式:直接运行和作为模块被其他模块调用. __name__:每一个模块都有一个内置属性__name__.而__name__的值取决与python模块(.py文件)的使用方式. 如果是直接运行,那么这个模块的__name__值就是“__main__”: 如果是作为模块被其他模块调用,那么这个模块(.py文件)的__name__值就是该模块(.py文件)的文件名,且不带路径和文件扩展名. 参考: ht

Python安装、配置图文详解

原文地址:http://weixiaolu.iteye.com/blog/1617440 目录: 一. Python简介 二. 安装python 1. 在windows下安装 2. 在Linux下安装 三. 在windows下配置python集成开发环境(IDE) 1. 在Eclipse中安装PyDev插件 2. 配置Python Interpreters 四. 创建Python Project 五. 编写HelloWorld 六. 小结 一. Python简介: Python在Linux.wi

Python安装、配置图文详解(转载)

Python安装.配置图文详解 目录: 一. Python简介 二. 安装python 1. 在windows下安装 2. 在Linux下安装 三. 在windows下配置python集成开发环境(IDE) 1. 在Eclipse中安装PyDev插件 2. 配置Python Interpreters 四. 创建Python Project 五. 编写HelloWorld 六. 小结 一. Python简介: Python在Linux.windows.Mac os等操作系统下都有相应的版本,不管在

python os.path模块常用方法详解

python os.path模块常用方法详解 1.   os.path.abspath(path)   返回path规范化的绝对路径. >>> import os    >>> os.path.abspath('pjc.txt')     '/home/pjc/pjc.txt' >>> os.path.abspath('c:\\test.csv')         #Windows主机指定完美的路径    'c:\\test.csv' 2.os.pat

Python读写文本文档详解

以下3步问正确的程序片段: 1.写文件 #! /usr/bin/python3 'makeTextFile.py -- create text file' import os def write_file(): "used to write a text file." ls = os.linesep #get filename fname = input("Please input filename:") while True: if os.path.exists(

Python中的getattr()函数详解:

Python中的getattr()函数详解: getattr(object, name[, default]) -> value Get a named attribute from an object; getattr(x, 'y') is equivalent to x.y. When a default argument is given, it is returned when the attribute doesn't exist; without it, an exception i