函数

编写     定义一个函数要用def语句    def sum(i,n):   ⚠有冒号

返回多值     实际上是返回一个tuple

定义默认参数    默认参数的作用是简化调用   def power(x,n=2)   默认参数只能定义在必需参数后面     使用时,power(2)或power(3,4)

定义可变参数     可变参数的名字前面有个*号,我们可以传入0个,1个或多个参数给可变参数

Python解释器将传入的一组参数组装成一个tuple传递给参数

切片

对list切片

L[0:3]   从索引0开始,直到索引3为止,但不包括索引3

L[:3]    如果索引从0开始,可以省略

L[1:3]    从索引1开始,直到索引3为止,不包括索引3

L[:]      从头到尾

L[::3]    从头到尾,每3个取一个,每隔两个取一个

#range(1,101) 可以创建一个数列   [1,2,3...,100]

L = range(1,101)
前10个数:L[0:10]
取出3的倍数 L[2::3]
取出不大于50的5的倍数 L[4:50:5]

倒叙切片

L[-2:]   从倒数第二个开始到最后

L[:-2]   从头到倒数第二个(不包含)

L[-4:-1:2]   从倒数第4个到倒数第一个,并每两个取一个

字符串切片    字符串表可看成是一种list,每个元素是一个字符。   字符串可以用切片操作

迭代

什么是迭代

Python的for循环不仅可以用在list或tuple上,还可以作用在其他任何可迭代对象上。迭代操作就是对于一个集合,无论该集合是有序还是无序,用for循环可以依次取出集合的一个元素。

集合的分类:

有序:list tuple  str unicode

无序: set

有key-value且无序: dict

索引的迭代

在Python中,迭代永远是取出元素本身,而非元素的索引。

可以使用enumerate()函数获得索引的迭代

for index,name in enumerate(L):
print index,'-',name

     实际上enumerate()把每个元素变成tuple(index,element)

zip(L1,L2)将list L1与L2合并, [(L1.a,L2.a),(L2.a,L2.b)...]

迭代dict中value

使用  for item in D   输出的是key

dict对象有一个 values()方法,这方法把dict转换成一个包含所有value的list

除了values()方法还有一个itervalues()方法

区别:   values()方法实际上把 dict转换成包含value的list。   itervalues()不会,他是在迭代过程中依次取出value   节省了生成list所需的空间

如果一个对象说自己可迭代,那我们直接用for循环去迭代它,迭代是一种抽象的数据操作,它不对迭代对象内部的数据有任何要求

迭代dict中key和value

同时迭代key和value。使用items()方法。将dict对象转换成包含tuple的list

列表生成器

生成列表

列表生成式:   把要生成的元素放到前面,后面跟for循环,就可以创建list

[x*x for x in range(1,101)]

条件过滤

[x*x for x in range(1,101) if x%2==0]

列表生成式的for循环后面还可以加上if判断   只有当if条件为True时,才把当前元素添加到列表

def toUpper(L):
return [x.upper() for x in L if isinstance(x,str)]

  多层表达式

多层for循环来生成列表

print [100*n1+10*n2+n3 for n1 in range(1,10) for n2 in range(0,10) for n3 in range(1,10) if n1==n3]

Python 函数 切片 迭代 列表生成器的更多相关文章

  1. Python学习 Day 4 函数 切片 迭代 列表生成式 生成器

    定义函数 def my_abs(x):#求绝对值的my_abs函数 if x >= 0: return x else: return –x def nop():#空函数 pass#占位符 参数检 ...

  2. python 基础 切片 迭代 列表生成式

    对list 进行切片 如列表 L = ['Adam', 'Lisa', 'Bart', 'Paul'] L[0:3] ['Adam', 'Lisa', 'Bart'] L[0:3]表示,从索引0开始取 ...

  3. python高级特性:切片/迭代/列表生成式/生成器

    廖雪峰老师的教程上学来的,地址:python高级特性 下面以几个具体示例演示用法: 一.切片 1.1 利用切片实现trim def trim(s): while s[:1] == " &qu ...

  4. python中的迭代、生成器等等

    本人对编程语言实在是一窍不通啊...今天看了廖雪峰老师的关于迭代,迭代器,生成器,递归等等,word天,这都什么跟什么啊... 1.关于迭代 如果给定一个list或tuple,我们可以通过for循环来 ...

  5. python之 可迭代 迭代器 生成器

    0. 1.总结 (1) (a)iterable 可迭代(对象) 能力属性 指一个对象能够一次返回它的一个成员,for i in a_list 而不需要通过下标完成迭代. 例子包括所有序列类型(list ...

  6. Python 函数之迭代器和生成器

    1.迭代器 迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退,迭代器仅仅在迭代到某个元素时才计算该元素,而在这之前或之后,元素可 ...

  7. python函数中把列表(list)当参数时的"入坑"与"出坑"

    在Python函数中,传递的参数如果默认有一个为 列表(list),那么就要注意了,此处有坑!! 入坑 def f(x,li=[]): for i in range(x): li.append(i*i ...

  8. Python函数中的列表

    在看21天的Python书中写出了一个陷阱,但没给出解释,以下为代码陷阱

  9. Python入门篇-解析式、生成器

    Python入门篇-解析式.生成器 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.列表解析式(List Comprehension) 1>.列表解析式语法 语法 [ 返回 ...

随机推荐

  1. python3.4 伪装成浏览器获取页面信息失败

    最近学了下网络爬虫,打算从一个网站上提取点东西,自己练练手,刚开始还从这个网站上取了正确的html,后来百般尝试还是不能取正确的html,希望能得到大家的帮助~ 我刚开始的代码是: 1 url=&qu ...

  2. python保留指定文件、删除目录其他文件的功能(2)

    在(1)中脚本实现了保留指定文件的功能,但不能删除空目录,在此补上删除空目录的方法 def DeleteEmptyDir(path): for i in range(1,100): for paren ...

  3. centos 6.5 安装 redis

    下载软件: wget wget http://download.redis.io/releases/redis-2.8.7.tar.gz 2.解压软件并编译安装: tar -zxvf redis-2. ...

  4. FileStream类

    使用FileStream能够对对系统上的文件进行读.写.打开.关闭等操作.并对其他与文件相关的操作系统提供句柄操作,如管道,标准输入和标准输出.读写操作可以指定为同步或异步操作.FileStream对 ...

  5. Silverlight 结合ArcGis

    原文 http://www.dotblogs.com.tw/justforgood/archive/2012/05/09/72064.aspx 终于有机会谈到ArcGis(觉得很冷门) ,不过既然都做 ...

  6. 我的第一个MFC的ArcGIS Engine程序

    原文 http://blog.csdn.net/zzahkj/article/details/9003518 (第一版,以VC++6.0+AE9.3为例) 首次,学习MFC,写个笔记,MFC还是挺好学 ...

  7. 【转】【经典算法】——KMP,深入讲解next数组的求解

    前言 之前对kmp算法虽然了解它的原理,即求出P0···Pi的最大相同前后缀长度k:但是问题在于如何求出这个最大前后缀长度呢?我觉得网上很多帖子都说的不是很清楚,总感觉没有把那层纸戳破,后来翻看算法导 ...

  8. 什么是优先级队列(priority queue)?

    有时候我们需要在某个元素集合中找到最小值和最大值 .优先级队列抽象数据(Priority Queue ADT)模型是我们能够使用的方法之一,这是一种支持插入和删除最小值(DeleteMin)或者最大值 ...

  9. OpenRisc-45-or1200的ID模块分析

    引言 之前,我们分析了or1200流水线的整体结构,也分析了流水线中IF级,EX级,本小节我们来分析ID(insn decode)级的一些细节. 1,基础 or1200的pipeline的ID阶段包含 ...

  10. 【转】android 物理按键

    关键词:android   按键  矩阵按键 AD按键  平台信息: 内核:linux2.6/linux3.0 系统:android/android4.0 平台:S5PV310(samsung exy ...