迭代

只要是可迭代对象,无论有无下标,都可以迭代,list / dict 等都可以迭代

判断一个对象是可迭代对象

>>> from collections import Iterable
>>> isinstance('abc', Iterable) # str是否可迭代
True
>>> isinstance([1,2,3], Iterable) # list是否可迭代
True
>>> isinstance(123, Iterable) # 整数是否可迭代
False

1. 遍历 list

遍历 list 的三种姿势

list = ['html', 'js', 'css', 'python']

方法1:


for i in list:
 print ("序号:%s   值:%s" % (list.index(i) + 1, i))

方法2:

for i in range(len(list)):
 print ("序号:%s   值:%s" % (i + 1, list[i]))

方法3:

 for i, val in enumerate(list):
  print ("序号:%s   值:%s" % (i + 1, val))

 # 设置遍历开始初始位置,只改变了起始序号
 for i, val in enumerate(list, 2):
  print ("序号:%s   值:%s" % (i + 1, val))

2. 遍历 dict

遍历 dict 的姿势

d = {'x': 1, 'y': 2, 'z': 3}
  1. 遍历 keys 的三种方式

    for key in d:
       print key,
    
    for key in d.iterkeys():
      print key,
    
    for key in d.keys():
     print key,
    
  2. 遍历 values 的两种方式

    for value in d.itervalues():
    print value,
    
    for value in d.values():
    print value,
    
  3. 遍历 keys 和 values d.iteritems() 是一个迭代器

    for key, value in d.iteritems():
     # d.iteritems: an iterator over the (key, value) items
     print key,value
    

    d.items() 是一个 list

    for key, value in d.items():
     # d.items(): list of d's (key, value) pairs, as 2-tuples
     # [('y', 2), ('x', 1), ('z', 3)]
     print key,value
    

3. 循环多个变量遍历

>>> for x, y in [(1, 1), (2, 4), (3, 9)]:
...     print x, y
...
1 1
2 4
3 9

results matching ""

    No results matching ""