Python 学习笔记(十一)Python语句(二)

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 >>>

列表解析

原文地址:https://www.cnblogs.com/wangruihua-521/p/8560899.html

时间: 2024-10-11 17:53:52

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

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

在一个程序当中,一般都会包含文件夹:bin.conf.lib.data.logs,以及readme文件. 所写程序存放到各自的文件夹中,如何进行串联? 首先,通过导入文件导入模块方式,引用其他人写好的代码. 其次,找到最顶层的程序所在文件夹,加入到环境变量中 import sys,os BASE_PATH = os.path.dirname(os.path.dirname(os.path.abspath(file))) #取到工程目录 sys.path.insert(0,BASE_PATH)#加

python 学习笔记 7 -- Python关键字总结

0.写在前面的话 学习一门语言最重要的功课是练习与复习,在<笨方法学Python>中第三十七节虽然没有教你任何内容,但是它提醒我们:"学了这么多,你还能记得多少?该复习了!" 下面我们就对这一节的第一部分"关键字"来做个复习: Python中的关键字包括如下: and       del        from      not      while    as        elif       global    or       with     

python学习笔记2—python文件类型、变量、数值、字符串、元组、列表、字典

python学习笔记2--python文件类型.变量.数值.字符串.元组.列表.字典 一.Python文件类型 1.源代码 python源代码文件以.py为扩展名,由pyton程序解释,不需要编译 [[email protected] day01]# vim 1.py #!/usr/bin/python        print 'hello world!' [[email protected] day01]# python 1.py hello world! 2.字节代码 Python源码文件

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

最近重新开始学习python,之前也自学过一段时间python,对python还算有点了解,本次重新认识python,也算当写一个小小的教程.一.什么是python?python是一种面向对象.解释型的计算机语言,它的特点是语法简洁.优雅.简单易学.在1989诞生,Guido(龟叔)开发.这里的python并不是蟒蛇的意思,而是龟叔非常喜欢一部叫做<Monty Python飞行马戏团>的电视剧,所以以python命名(老外就是这么任性).二.解释型语言和编译型语言编译型语言就是先把写好的程序翻

python学习笔记(python发展介绍)

一.python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum) 目前python主要应用领域: ·云计算 ·WEB开发 ·科学运算.人工智能 ·系统运维 ·金融:量化交易,金融分析等,作为动态语言的python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛 ·图形GUI python是一门什么样的语言? 编程语言主要从以下几个角度进行分类,编译型和解释型.静态语言和动态语言.强类型定义语言和弱类型定义语言. 编译型和解释型 编译型,如:c,c++,

我的python学习--第十一天(二)

CMDB中表关联 一.jinja2方法 前端html代码: <div class="form-group">               <label for="idc_id" class="col-sm-3 control-label">所在机房ID</label>     <div class="col-sm-8">               <select id='

Python学习笔记-面向对象进阶(二)

一.反射 1.什么是反射 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力(自省). 2.Python面向对象中的反射 通过字符串的形式操作对象相关的属性.python中的一切事物都是对象(都可以使用反射) 3.四个可以实现自省的函数 (1)hasattr(object,name),判断object中有没有一个name字符串对应的方法或属性,检测是否含有某属性. class BlackMedium: feture='Ugly' def _

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

SqlAlchemy ORM SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据API执行SQL并获取执行结果. Dialect用于和数据API进行交流,根据配置文件的不同调用不同的数据库API,从而实现对数据库的操作,如: MySQL-Python mysql+mysqldb://<user>:<password>@<host>[:<port&g

Python学习笔记2—Python语句(顺序、选择、循环)

一.Python语句 python语句大体上分为:顺序执行语句,条件执行语句,循环执行语句. 语句逐个运行 Python 从头到尾执行文件中的嵌套块中的语句 块和语句的边界自动检测 Python 没有 或者\ begin/end" 等分割字符 Python 使用首行下的语句缩进把嵌套块内的语句组合起来,没有分号结束,一行的末尾通常是语句的结尾 复合语句,首行 +":"+ 缩进语句 Python 中复合语句都遵循相同的格式,首行会以冒号终止,再接一个或者多个嵌套语句,通常都是在

Python学习笔记-模块介绍(二)-模块导入和执行

之前的一篇博文介绍了python中模块的概念和基本使用方法,模块作为python语言中的基本单元,可以用来编写公用库函数或对象以便重复使用.同时模块还可以作为独立文件进行运行,之前也已经提到,只要是导入了模块文件,那么PVM就会依次执行模块文件中的所有语句.本篇主要介绍模块使用的一些进阶,首先定义一个模块module_2.py,内容如下: # -*- encoding:utf-8 -*-'''module_2.py模块的内容''' print(__name__) def sum(a,b):ret