Python高级特性-迭代(Iteration)-列表生成式-生成器

迭代


定义

for循环对list或tuple进行遍历我们称之为迭代(Iteration)

  1. 只要属于list类型的对象都可以被迭代.
  2. Python的for循环抽象程度要比Java的高,迭代不仅可以用在list或tuple上还可以用在其他迭代对象上.比如dict,str.
>>> d = {
  'a':1,'b':2,'c':3}
>>> for x in d:
...     print x
... 
a
c
b

>>> str = 'abc'
>>> for s in str:
...    print s
... 
a
b
c

dict是无序的所以输出结果也无序.dict默认迭代的是key,如果要迭代value呢?可以使用for value in d.itervalues(),如果需要同时迭代key和value可以用for k, v in d.iteritems().

  1. 但是如何判断一个对象是否是可迭代对象呢?我们可以通过collection模块里的Iterable类进行判断.
>>> from collections import Iterable
>>> isinstance('abc',Iterable)
True
>>> isinstance((1,2,3),Iterable)
True
>>> isinstance([1,2,3],Iterable)
True
>>> isinstance(123,Iterable)
False
  1. for可以同时迭代两个变量
>>> for x,y in ((1,1),(2,2),(3,3)):
...     print x ,y 
... 
1 1
2 2
3 3

开拓思维要是需要迭代2个以上的对象呢?

>>> for a,b,c in [(1,1,1),(2,2,2),(3,3,3)]:
...     print a,b,c
... 
1 1 1
2 2 2
3 3 3

列表生成式


定义

列表生成式是Python内置的非常强大的可以用来创建list的生成式
例:生成[1…10]的list

>>> range(1,11)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

但是如果生成[1x1,2x2,3x3….10x10]的list怎么办?
方法1:循环

>>> for x in range(1,11):
...     y = x * x
...     L.append(y)
... 
>>> L
[1, 4, 9, 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值