Python基础

1. list数据类型类似于数组,是可变的,使用“[]”定义,list变量可使用append(),pop(),insert()进行操作

2. tuple元组使用“()”定义,tuple类型与lisr类型主要不同点在于tuple不可变,创建了就不能修改,注意这个不能修改是说指向不能改变,如:t = ('a', 'b', ['A', 'B'])    t有三个元素,第0个指向字符'a',第1个指向字符'b',第2个指向一个list,注意:tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!理解了“指向不变”后,要创建一个内容也不变的tuple怎么做?那就必须保证tuple的每一个元素本身也不能变。

3. dict是一组键值对(key:value),key不可变,dict的特点: 1. 访问快,效率高,但是占用的内存大。2. 元素排列是无序的。3. key值不可变。

d = {

   'Adam': 95,

   'Lisa': 85,

   'Bart': 59

}

4. python函数返回多个值时,返回的其实是一个tuple

5. 函数的可变参数

给函数传入可变参数时,Python解释器会把传入的一组参数组装成一个tuple传递给可变参数,因此,在函数内部,直接把变量 args 看成一个 tuple 就好了。定义一个可变参数函数:

def average(*args):

       print args

6. 迭代

迭代的永远是取出元素本身,而不是其索引

对于有序集合,如果想迭代出其索引,可以使用enumerate()函数,如:

>>> L = ['Adam', 'Lisa', 'Bart', 'Paul']

>>> for index, name in enumerate(L):

...     print index, '-', name

...

0 - Adam

1 - Lisa

2 - Bart

3 - Paul

实际上,enumerate() 函数将L转变成了一个tuple,变成类似的:

[(0, 'Adam'), (1, 'Lisa'), (2, 'Bart'), (3, 'Paul')]

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


7. 生成列表

如果要生成[1x1, 2x2, 3x3, ..., 10x10]怎么做?方法一是循环:

>>> [x * x for x in range(1, 11)]

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

这种写法就是Python特有的列表生成式。利用列表生成式,可以以非常简洁的代码生成 list。

写列表生成式时,把要生成的元素 x * x 放到前面,后面跟 for 循环,就可以把list创建出来,十分有用


8. 闭包:一个函数内部还定义了其它函数,内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)

闭包的特点是返回的函数还引用了外层函数的局部变量,所以,要正确使用闭包,就要确保引用的局部变量在函数返回后不能变

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 最近在慕课网学习廖雪峰老师的Python进阶课程,做笔记总结一下重点。 基本变量及其类型 变量 在Python中,...
    victorsungo阅读 5,792评论 0 5
  • 目录最重要的工具PIP, 以及常用的网站,IDE推荐 基本概念 函数 进阶概念:装饰器,迭代器,列表推导式,匿名函...
    六合鱼阅读 1,774评论 0 0
  • 一、python 变量和数据类型 1.整数 Python可以处理任意大小的整数,当然包括负整数,在Python程序...
    绩重KF阅读 5,888评论 0 1
  • 简介 Python是开源的Python由很多解释器:CPython(官方),IPython(增强交互模式),PyP...
    齐天大圣李圣杰阅读 2,784评论 0 3
  • 本教程基于Python 3,参考 A Byte of Python v1.92(for Python 3.0) 以...
    yuhuan121阅读 8,526评论 1 6

友情链接更多精彩内容