For 循环语句

基础知识

for循环可以遍历任何序列的项目,如一个列表或者一个字符串。

语法:

for 循环规则:

  do sth

  1. >>> for i in "python" : #用i这个变量遍历这个字符串的每一个字符
  2. ... print i #将遍历的字符打印出来
  3. ...
  4. p
  5. y
  6. t
  7. h
  8. o
  9. n
  10. >>> lst =["baidu","google","ali"]
  11. >>> for i in lst: #用变量i遍历这个列表,将每个元素打印出来
  12. ... print i
  13. ...
  14. baidu
  15. google
  16. ali
  17. >>> t =tuple(lst)
  18. >>> t
  19. ('baidu', 'google', 'ali')
  20. >>> for i in t: #用变量i遍历元组,将每个元素打印出来
  21. ... print i
  22. ...
  23. baidu
  24. google
  25. ali
  26. >>> d =dict([("lang","python"),("website","baidu"),("city","beijing")])
  27. >>> d
  28. {'lang': 'python', 'website': 'baidu', 'city': 'beijing'}
  29. >>> for k in d: #用变量k遍历这个字典,将每个key打印出来
  30. ... print k
  31. ...
  32. lang
  33. website
  34. city
  35. >>> for k in d: #用变量k遍历字典d
  36. ... print k,"-->",d[k] #将key值和value值打印出来
  37. ...
  38. lang --> python
  39. website --> baidu
  40. city --> beijing
  41. >>> d.items() #以列表返回可遍历的(键, 值) 元组
  42. [('lang', 'python'), ('website', 'baidu'), ('city', 'beijing')]
  43. >>> for k,v in d.items(): #用key value遍历d.items()的元组列表
  44. ... print k,"-->",v #取得key ,value
  45. ...
  46. lang --> python
  47. website --> baidu
  48. city --> beijing
  49. >>> for k,v in d.iteritems(): iteritems 返回的是迭代器 推荐使用这个
  50. ... print k,v
  51. ...
  52. lang python
  53. website baidu
  54. city beijing
  55. >>> d.itervalues() 返回的是迭代器
  56. <dictionary-valueiterator object at 0x0000000002C17EA8>
  57. >>>

判断对象是否可迭代

  1. >>> import collections #引入标准库
  2. >>> isinstance(321,collections.Iterable) #返回false,不可迭代
  3. False
  4. >>> isinstance([1,2.3],collections.Iterable) #返回true,可迭代
  5. True
  1. >>> l =[1,2,3,4,5,6,7,8,9]
  2. >>> l[4:]
  3. [5, 6, 7, 8, 9]
  4. >>> for i in l[4:]: #遍历4以后的元素
  5. ... print i
  6. ...
  7. 5
  8. 6
  9. 7
  10. 8
  11. 9
  12. >>> help(range) #函数可创建一个整数列表,一般用在 for 循环中
  13. Help on built-in function range in module __builtin__:
  14.  
  15. range(...)
  16. range(stop) -> list of integers
  17. range(start, stop[, step]) -> list of integers #计数从 start 开始,计数到 stop 结束,但不包括 stop,step:步长,默认为1
  18.  
  19. Return a list containing an arithmetic progression of integers.
  20. range(i, j) returns [i, i+1, i+2, ..., j-1]; start (!) defaults to 0.
  21. When step is given, it specifies the increment (or decrement).
  22. For example, range(4) returns [0, 1, 2, 3]. The end point is omitted!
  23. These are exactly the valid indices for a list of 4 elements.
  24.  
  25. >>> range(9)
  26. [0, 1, 2, 3, 4, 5, 6, 7, 8]
  27. >>> range(2,8)
  28. [2, 3, 4, 5, 6, 7]
  29. >>> range(1,9,3)
  30. [1, 4, 7]
  31. >>> l
  32. [1, 2, 3, 4, 5, 6, 7, 8, 9]
  33. >>> range(0,9,2)
  34. [0, 2, 4, 6, 8]
  35. >>> for i in range(0,9,2):
  36. ... print i
  37. ...
  38. 0
  39. 2
  40. 4
  41. 6
  42. 8
  43. >>>
  1. #! /usr/bin/env python
  2. #coding:utf-8
  3.  
  4. aliquot =[] #创建一个空的列表
  5.  
  6. for n in range(1,100): #遍历1到100 的整数
  7. if n %3==0: #如果被3整除
  8. aliquot.append(n) #将n值添加到列表中
  9.  
  10. print aliquot

zip() 函数

函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。

返回一个列表,这列表是以元组为元素

  1. >>> a =[1,2,3,4,5]
  2. >>> b =[9,8,7,6,5]
  3. >>> c =[]
  4. >>> for i in range(len(a)):
  5. ... c.append(a[i]+b[i])
  6. >>> for i in range(len(a)):
  7. ... c.append(a[i]+b[i])
  8. ...
  9. >>> c
  10. [10, 10, 10, 10, 10]
  11. >>> help(zip)
  12. Help on built-in function zip in module __builtin__:
  13.  
  14. zip(...)
  15. zip(seq1 [, seq2 [...]]) -> [(seq1[0], seq2[0] ...), (...)]
  16.  
  17. Return a list of tuples, where each tuple contains the i-th element
  18. from each of the argument sequences. The returned list is truncated
  19. in length to the length of the shortest argument sequence.
  20.  
  21. >>> a
  22. [1, 2, 3, 4, 5]
  23. >>> b
  24. [9, 8, 7, 6, 5]
  25. >>> zip(a,b)
  26. [(1, 9), (2, 8), (3, 7), (4, 6), (5, 5)]
  27. >>> c =[1,2,3]
  28. >>> zip(c,b)
  29. [(1, 9), (2, 8), (3, 7)]
  30. >>> zip(a,b,c)
  31. [(1, 9, 1), (2, 8, 2), (3, 7, 3)]
  32. >>> d=[]
  33. >>> for x,y in zip(a,b):
  34. ... d.append(x+y)
  35. ...
  36. >>> d
  37. [10, 10, 10, 10, 10]
  38. >>> r =[(1,2),(3,4),(5,6),(7,8)]
  39. >>> zip(*r)
  40. [(1, 3, 5, 7), (2, 4, 6, 8)]
  41. >>>

enumerate()函数

函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

语法:

enumerate(sequence, [start=0])

sequence -- 一个序列、迭代器或其他支持迭代对象

start -- 下标起始位置。

返回值: enumerate枚举对象

  1. >>> help(enumerate)
  2. Help on class enumerate in module __builtin__:
  3.  
  4. class enumerate(object)
  5. | enumerate(iterable[, start]) -> iterator for index, value of iterable
  6. |
  7. | Return an enumerate object. iterable must be another object that supports
  8. | iteration. The enumerate object yields pairs containing a count (from
  9. | start, which defaults to zero) and a value yielded by the iterable argument.
  10. | enumerate is useful for obtaining an indexed list:
  11. | (0, seq[0]), (1, seq[1]), (2, seq[2]), ...
  12. |
  13. | Methods defined here:
  14. |
  15. | __getattribute__(...)
  16. | x.__getattribute__('name') <==> x.name
  17. |
  18. | __iter__(...)
  19. | x.__iter__() <==> iter(x)
  20. |
  21. | next(...)
  22. | x.next() -> the next value, or raise StopIteration
  23. |
  24. | ----------------------------------------------------------------------
  25. | Data and other attributes defined here:
  26. |
  27. | __new__ = <built-in method __new__ of type object>
  28. | T.__new__(S, ...) -> a new object with type S, a subtype of T
  29.  
  30. >>> weeks =["sun","mon","tue","web","tue","fri","sta"]
  31. >>> for i,day in enumerate(weeks):
  32. ... print str(i)+":"+day
  33. ...
  34. 0:sun
  35. 1:mon
  36. 2:tue
  37. 3:web
  38. 4:tue
  39. 5:fri
  40. 6:sta
  41. >>> for i in range(len(weeks)):
  42. ... print str(i)+":"+weeks[i]
  43. ...
  44. 0:sun
  45. 1:mon
  46. 2:tue
  47. 3:web
  48. 4:tue
  49. 5:fri
  50. 6:sta
  51. >>> raw ="Do you love canglaoshi? canglaoshi is a good teacher."
  52. >>> raw_lst =raw.split(" ")
  53. >>> raw_lst
  54. ['Do', 'you', 'love', 'canglaoshi?', 'canglaoshi', 'is', 'a', 'good', 'teacher.']
  55. >>> for i,w in enumerate(raw_lst):
  56. ... if w =="canglaoshi":
  57. ... raw_lst[i]="luolaoshi"
  58. ...
  59. >>> raw_lst
  60. ['Do', 'you', 'love', 'canglaoshi?', 'luolaoshi', 'is', 'a', 'good', 'teacher.']
  61. >>> for i,w in enumerate(raw_lst):
  62. ... if "canglaoshi" in w:
  63. ... raw_lst[i]="luolaoshi"
  64. ...
  65. >>> raw_lst
  66. ['Do', 'you', 'love', 'luolaoshi', 'luolaoshi', 'is', 'a', 'good', 'teacher.']
  67. >>> a =range(10)
  68. >>> a
  69. [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  70. >>> s =[]
  71. >>> for i in a:
  72. ... s.append(i*i)
  73. ...
  74. >>> s
  75. [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
  76. >>> b = [i*i for i in a] #列表解析
  77. >>> b
  78. [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
  79. >>> c = [i*i for i in a if i%3==0] #列表解析,加入限制条件
  80. >>> c
  81. [0, 9, 36, 81]
  82. >>>

列表解析

Python 学习笔记(十一)Python语句(二)的更多相关文章

  1. python学习笔记(十一)-python程序目录工程化

    在一个程序当中,一般都会包含文件夹:bin.conf.lib.data.logs,以及readme文件. 所写程序存放到各自的文件夹中,如何进行串联? 首先,通过导入文件导入模块方式,引用其他人写好的 ...

  2. python 学习笔记 9 -- Python强大的自省简析

    1. 什么是自省? 自省就是自我评价.自我反省.自我批评.自我调控和自我教育,是孔子提出的一种自我道德修养的方法.他说:“见贤思齐焉,见不贤而内自省也.”(<论语·里仁>)当然,我们今天不 ...

  3. python学习笔记(一):python简介和入门

    最近重新开始学习python,之前也自学过一段时间python,对python还算有点了解,本次重新认识python,也算当写一个小小的教程.一.什么是python?python是一种面向对象.解释型 ...

  4. python 学习笔记一——Python安装和IDLE使用

    好吧,一直准备学点啥,前些日子也下好了一些python电子书,但之后又没影了.年龄大了,就是不爱学习了.那就现在开始吧. 安装python 3 Mac OS X会预装python 2,Linux的大多 ...

  5. python学习笔记(python简史)

    一.python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum) 目前python主要应用领域: ·云计算 ·WEB开发 ·科学运算.人工智能 ·系统运维 ·金融:量化交 ...

  6. python学习笔记之——python模块

    1.python模块 Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句. 模块让你能够有逻辑地组织你的 Python ...

  7. Python学习笔记 - day12 - Python操作NoSQL

    NoSQL(非关系型数据库) NoSQL,指的是非关系型的数据库.NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称.用于超大规模数据的存储.(例如 ...

  8. python学习笔记(1)--python特点

    python诞生于复杂的信息系统时代,是计算机时代演进的一种选择. python的特点,通用语言,脚本语言,跨平台语言.这门语言可以用于普适的计算,不局限于某一类应用,通用性是它的最大特点.pytho ...

  9. python 学习笔记十一 SQLALchemy ORM(进阶篇)

    SqlAlchemy ORM SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据A ...

  10. 【Python学习笔记】with语句与上下文管理器

    with语句 上下文管理器 contextlib模块 参考引用 with语句 with语句时在Python2.6中出现的新语句.在Python2.6以前,要正确的处理涉及到异常的资源管理时,需要使用t ...

随机推荐

  1. 简单工厂模式的C++、Java实现

    1.简单工厂模式UML UML如下: 图1. 简单工厂模式UML 2.C++实现 类视图如下: 图2. C++实现简单工厂模式类视图 其中,SimpleFactory实现为: Product * Si ...

  2. Python入门-初始面向对象

    之前我们代码基本上都是面向过程的,今天我们就来初始一下python中一个重要的内容:面向对象 一.面向对象和面向过程(重点理解) 1.面向过程: 一切以事物的流程为核心. 核心是"过程&qu ...

  3. html+css中常见的浏览器兼容性处理

    1.居中问题 div里的内容,IE默认为居中,而FF默认为左对齐,可以尝试增加代码margin: 0 auto; 2.高度问题 两上下排列或嵌套的div,上面的div设置高度(height),如果di ...

  4. vs2010开发activex(MFC)控件/ie插件(二):js传参数

    原文:http://blog.csdn.net/yhhyhhyhhyhh/article/details/50802075  js传参数给activex控件. 过程为:js变量通过activex类的属 ...

  5. listview cacheColorHint,listSelector属性

    ListView是常用的显示控件,默认背景是和系统窗口一样的透明色,如果给ListView加上背景图片,或者背景颜色时,滚动时listView会黑掉, 原因是,滚动时,列表里面的view重绘时,用的依 ...

  6. 基于容器微服务的PaaS云平台设计(一) 实现容器微服务和持续集成

    版权声明:本文为博主原创文章,欢迎转载,转载请注明作者.原文超链接 ,博主地址:http://www.cnblogs.com/SuperXJ/ 前言:关于什么是容器微服务PaaS和容器微服务PaaS的 ...

  7. 基础JavaScript练习(一)

    任务目的 学习与实践JavaScript的基本语法.语言特性 初步了解JavaScript的事件是什么 初步了解JavaScript中的DOM是什么 任务描述 如图,模拟一个队列,队列的每个元素是一个 ...

  8. How I explained OOD to my wife

    Introduction My wife Farhana wants to resume her career as a software developer (she started her car ...

  9. SpringBoot页面访问处理

    SpringBoot页面访问处理 1.介绍 Springboot推荐使用thymeleaf模板引擎搭载html页面实现jsp动态渲染效果,因此这里才会用该种方案进行. 2.集成步骤 引入thymele ...

  10. 修改容器的hosts文件

    修改容器的hosts文件 1.介绍 docker容器中的hosts文件虽然在宿主机磁盘上/var/lib/docker/containers/xxx/hosts中,但是修改该文件是无效的,需要通过其他 ...