函数

编写     定义一个函数要用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. VS2012 的MVC4实例

    原文链接:http://wenku.baidu.com/link?url=nkq-UZd-Ui83Nuoh66n4KqdwK4V_zzKqakmmG6VBgq2BfWlMiPhz1JXN9R3CWxN ...

  2. 创业不要在IT业内创(市场太小,而且都喜欢自己折腾、没有花钱的习惯)

    精神是好的.但是,我看了你的产品和网站:你选的创业方向基本是死路一条,我劝你该放弃就放弃.我判断你的思路还局限在IT行业内,创业不要在IT业内创,要走出去,睁开眼看看别人的世界,自己体会.我不是打击你 ...

  3. 【Razor语法规则小手册....】

    在经过长达半年的Windows开发后,Razor的一些语法有些生疏了.搜集些,再熟悉下.呵呵,甚是怀念以前做web 项目的时候,基于动软代码生成器自定义T4模板,后来vs2010后开始支持T4模板. ...

  4. python list列表 方法总结

    深入链表(most on lists) The list data type has some more methods. Here are all of the methods of list ob ...

  5. jquery validationEngine的使用

    1.引入文件 <script src="/js/jquery-1.4.2.min.js" type="text/javascript"></s ...

  6. android连续点击两次返回键退出代码

    private long exitTime = 0; @Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCo ...

  7. UESTC_邱老师选妹子(二) 2015 UESTC Training for Dynamic Programming<Problem I>

    I - 邱老师选妹子(二) Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Su ...

  8. MongoDb Windows linux平台环境及主流编程语言驱动安装同时配置mongoDb的远程连接

    <一,>MongoDB 简介篇Ruiy; MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种.它在许多场景下可用于替代传统的关系型数据库或键/值 ...

  9. JavaScript 轮播图

    这是我自己做的一个轮播图,大家可以看看 ,我还没进行优化.有改进的地方可以私聊 布局什么的你们自己搞定吧 <div class="slider" id="circl ...

  10. vim中对文本的选择

    本文主要解说vim中对文本的选择,vim中选择文本分为: (1)选择字符  ----  命令行模式下输入小写v (2)选择行     ----  命令行模式下输入大写V (3)选择块     ---- ...