Python 索引迭代

1、使用enumerate函数

  1. L = [‘Adam‘, ‘Lisa‘, ‘Bart‘, ‘Paul‘]
  2. for index, name in enumerate(L):
  3.     print index + 1, ‘-‘, name.lower()

2、使用zip函数

  1. for index, name in zip(range(1, len(L)+1), L):
  2.     print index, ‘-‘, name

3、dict元素迭代访问

  1. d = {
  2. ‘Adam‘: 95,
  3. ‘Lisa‘: 85,
  4. ‘Bart‘: 59
  5. }
  6. for (key, value) in d.items():
  7. print("%s: %s" % (key, value))
  8. for key in d:
  9. print("%s: %s" % (key, d[key]))
  10. for key, value in zip(d.keys(), d.values()):
  11. print("%s: %s" % (key, value))

如果仔细阅读Python的文档,还可以发现,dict除了values()方法外,还有一个 itervalues() 方法,用 itervalues() 方法替代 values() 方法,迭代效果完全一样。

  1. for key, value in zip(d.iterkeys(), d.itervalues()):
  2. print("%s: %s" % (key, value))

那这两个方法有何不同之处呢?

1. values() 方法实际上把一个 dict 转换成了包含 value 的list。

2. 但是 itervalues() 方法不会转换,它会在迭代过程中依次从 dict 中取出 value,所以 itervalues() 方法比 values() 方法节省了生成 list 所需的内存。

3. 打印 itervalues() 发现它返回一个 <dictionary-valueiterator> 对象,这说明在Python中,for 循环可作用的迭代对象远不止 list,tuple,str,unicode,dict等,任何可迭代对象都可以作用于for循环,而内部如何迭代我们通常并不用关心。

来自为知笔记(Wiz)

时间: 2024-07-28 14:55:01

Python 索引迭代的相关文章

Python的索引迭代(转载http://www.imooc.com/learn/177)

Python中,迭代永远是取出元素本身,而非元素的索引. 对于有序集合,元素确实是有索引的.有的时候,我们确实想在 for 循环中拿到索引,怎么办? 方法是使用 enumerate() 函数: >>> L = ['Adam', 'Lisa', 'Bart', 'Paul'] >>> for index, name in enumerate(L): ... print index, '-', name ... 0 - Adam 1 - Lisa 2 - Bart 3 -

Python enumerate索引迭代

索引迭代Python中,迭代永远是取出元素本身,而非元素的索引.对于有序集合,元素确实是有索引的.有的时候,我们确实想在 for 循环中拿到索引,怎么办?方法是使用 enumerate() 函数:>>> L = ['Adam', 'Lisa', 'Bart', 'Paul']>>> for index, name in enumerate(L):... print index, '-', name... 0 - Adam1 - Lisa2 - Bart3 - Paul使

Python for循环通过序列索引迭代

Python for 循环通过序列索引迭代: 注:集合 和 字典 不可以通过索引进行获取元素,因为集合和字典都是无序的. 使用 len (参数) 方法可以获取到遍历对象的长度. 程序: strs = "Hello World." # 使用 len 方法可以获取到遍历对象的长度. print(len(strs)) # 12 lst = [7,8,9,4,5,6] print(len(lst)) # 6 tup = (1,2,3,7,8,9) print(len(tup)) # 6 使用

Python 可迭代的对象、迭代器和生成器

迭代是数据处理的基石.扫描内存中放不下的数据集时,我们要找到一种惰性获取数据项的方式,即按需一次获取一个数据项.这就是迭代器模式(Iterator pattern). p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 25.0px Helvetica } Sentence类第1版:单词序列 我们要实现一个 Sentence 类,以此打开探索可迭代对象的旅程.我们向这个类的构造方法传入包含一些文本的字符串,然后可以逐个单词迭代.第 1 版要实现序列协议,这

python的迭代

好的,今天仔细想想,我昨天那篇文章好像讲的都是废话,因为现在还在学基础,讲网络爬虫好像不太合适,尽管只是讲一个大概. 好的,今天我们继续来学习python基础语法,python的迭代.在上上篇文章中,我们讲了for循环,然后我们提到了迭代这个概念,意思就是说从头数到尾,嗯,就这么简单.我们今天主要是要学习一下关于迭代的几个知识: 1.并行迭代:所谓并行迭代就是同时迭代两个序列.我们来看一下示例代码: name = ['Tom','Pony'] number = ['111','123'] for

python入门七(迭代)【9-3 python之迭代dict的value和key】

9-3 python之迭代dict的value和key 我们了解了如何迭代 dict 的key和value,那么,在一个 for 循环中,能否同时迭代 key和value?答案是肯定的. 首先,我们看看 dict 对象的 items() 方法返回的值: >>> d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 } >>> print d.items() [('Lisa', 85), ('Adam', 95), ('Bart', 59)]

python之迭代

如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration). 在Python中,迭代是通过for ... in来完成的,而很多语言比如C或者Java,迭代list是通过下标完成的,比如Java代码: for (i=0; i<list.length; i++) { n = list[i]; } 可以看出,Python的for循环抽象程度要高于Java的for循环,因为Python的for循环不仅可以用在list或tuple上,

Python中迭代输出(index,value)的几种方法

需求如下:迭代输出序列的索引(index)和索引值(value). 1.创建测试列表: >>> lst = [1,2,3,4,5] 2.实现方法如下: #方法1:range()+len() >>> for i in range(len(lst)): print i,lst[i] 0 1 1 2 2 3 3 4 4 5 #方法2:enumerate() >>> for index,value in enumerate(lst): print index,

python iteration 迭代

可迭代的类型:list,tuple,dict,str,bytes,bytearray等 一.怎么判断一个对象是否可迭代 1 >>> from collections import Iterable 2 >>> isinstance([1, 2, 3], Iterable) 3 True 4 >>> isinstance((1, 2, 3), Iterable) 5 True 6 >>> isinstance({'one': 1}, I