3、Python迭代器、列表解析及生成器(0530)

回顾:

1、动态语言

  • sys.getrefcount()    //查看对象的引用计数
  • 增加对象的引用计数场景
  • 对象创建时:以赋值的方式,创建变量名的同时就会创建变量
  • 将对象添加进容器时:类似list.append()
  • 当对象被当作参数传递给函数时
  • 多重目标赋值时:s1 = s2 = s3 = ‘abc‘
  • 为对象创建另外的变量名
  • 减少引用计数
  • 引用此对象的某变量名被显示销毁:del x
  • 引用此对象的某变量名重新赋值
  • 从容器中移除对象时,类似list.pop()
  • 容器本身被销毁

2.if

if boolean_exprssion:

....

elif boolean_exprssion:

....

else:

....

3.while

while boolean_exprssion:

while_suite

if boolean_esprssion2:contine

if boolean_esprssion3:break

else

else_suite

4.for

for  exprssion in object:

while_suite

if boolean_esprssion2:contine

if boolean_esprssion3:break

else

else_suite

raw_input :输入一个内容

for循环练习

1、逐一分开显示指定字典d1中的所有元素,类似如下

k1 v1

k2 v2

2、逐一显示列表中l1=[‘Sun‘,‘Mon‘,‘Tue‘,‘Wed‘,‘Thu‘,‘Fri‘,‘Sat‘]中的索引为奇数的元素;

3、将属性列表l1=[‘Sun‘,‘Mon‘,‘Tue‘,‘Wed‘,‘Thu‘,‘Fri‘,‘Sat‘],但不属于列表l2=[‘Sun‘,‘Mon‘,‘Wed‘,‘Thu‘,‘Sat‘]的所有元素定义为一个新列表l3;

4、已知列表namelist=[‘stu1‘,‘stu2‘,‘stu3‘,‘stu4‘,‘stu5‘,‘stu6‘,‘stu7‘],删除列表removelist=[‘stu3‘,‘stu7‘,‘stu9‘]

请将属于removelist列表中的每个元素从namelist中移除(属于removelist,但不属于namelist的忽略即可)

非完备遍历:

在实现循环时,如果在实现索引计数时,通过range方式获取列表或某一序列的有限的索引,

比如练习2的range(1,len(l1),2)中,只遍历了索引为偶数的元素

完备遍历:

迭代:重复做一件事

列表解析:

根据已有列表,生成新的列表

文件对象:

文本都是字节序列

var_name = open (file_name[mode,[bufsize]])

mode:

r

w

a

r+

w+

a+

b表示已二进制模式打开文件

rb

wb

ab

rb+

wb+

ab+

缓存:

0表示不使用缓存

负数表示使用系统默认的缓存

1表示使用缓存

整数表示使用大小的缓冲区

file.seek(offset[whence])

whence:起点

0:从文件头

1:从当前位置

2:从文件尾

offset:偏移量

文件系统模块:os

目录:

chdir():切换工作目录

chroot():设定当前进程的根目录

listdir():列出指定目录下的所有文件名

mkdir():创建指定目录

makedirs():创建多久目录

getcwd():获取工作目录

rmdir():删除目录

removedirs():删除多级目录

文件:

mkfifo():创建管道

mknod():创建设备文件

remove():删除文件

unlink():删除链接文件

rename():重命名

stat():放回文件的状态信息

symlink():创建链接文件

utime():更新时间戳

tmpfile():创建并打开(w+b)一个新的临时文件

walk():创建目录树

访问权限相关的

access():检验某个用户或用户组的权限模式

chmod():修改权限

chown():修改属主和属组

umask():设置默认权限模式

文件描述符:

open():底层操作系统的open()

read():

write():

设备文件:

makedev():

major():获取主设备号

minor():获取次设备号

路径管理:

import os.path

basename():路径基名

dirname():路径目录名

join():整合文件名

split():返回dirname(),basename()元组

splitext():返回(filename,extension)元组

信息:

getatime()

getctime()

getmtime()

getsize():返回文件的大小

查询

exists():判断指定文件是否存在

isabs():判断指定的路径是否为绝对路径

isdir():是否为目录

isfile():是否为文件

islink():是否为符号链接

ismount():是否为挂载点

samefile():两个路径是否指向了同一个文件

练习:判断文件是否存在,存在则打开

让用户通过键盘反复输入多行数据

追加保存至此文件中

#!/usr/bin/python

import os

import os.path

filename=raw_input(‘plz a file name:‘)

if os.path.isfile(filename):

openname= open(filename,‘a+‘)

while True:

newline=raw_input(‘plz a line:‘)

if newline == ‘q‘ or newline ==‘quit‘:

break

else:

openname.write(newline+‘\n‘)

openname.close()

对象持久存储

pickle

marshal

DBM接口

shaelve模块

原文地址:https://www.cnblogs.com/hanshanxiaoheshang/p/9348049.html

时间: 2024-10-11 11:36:11

3、Python迭代器、列表解析及生成器(0530)的相关文章

python之列表解析与生成器

防伪码:忘情公子著 什么是列表解析? 列表解析就是根据已有列表,高效生成新列表的方式 列表解析是python迭代机制的一种应用,它常用于实现创建新的列表,因此要放置于[]中 语法: [expression for iter_var in iterable][expression for iter_var in iterable if cond_expr] 例: In [1]: L = [i**2 for i in xrange(9)] In [2]: print L[0, 1, 4, 9, 16

函数嵌套 ,名称空间与作用域 ,闭包函数 ,装饰器 ,迭代器, 生成器 三元表达式,列表解析,生成器表达式 递归与二分法, 内置函数

函数嵌套名称空间与作用域闭包函数装饰器迭代器生成器三元表达式,列表解析,生成器表达式递归与二分法内置函数--------------------------------------------函数的嵌套调用:在调用一个函数的过程中,又调用了其他函数函数的嵌套定义:在一个函数的内部,又定义另外一个函数def max(x,y): if x>y: return x else: return ydef max1(a,b,c,d): res=max(a,b) res2=max(res,c) res3=ma

Python基础(9)三元表达式、列表解析、生成器表达式

一.三元表达式 三元运算,是对简单的条件语句的缩写. # if条件语句 if x > f: print(x) else: print(y) # 条件成立左边,不成立右边 x if x > y else y # 三元表达式 python的三元运算格式如下: result=值1 if x<y else 值2 # 如果条件成立,那么将"值1"赋值给result变量,否则,将"值2"赋值给result变量 二.列表解析 列表解析:用三元表达式,将结果写入列

Python全栈day18(三元运算,列表解析,生成器表达式)

一,什么是生成器 可以理解为一种数据类型,这种数据类型自动实现了迭代器协议(其他数据类型需要调用自己内置的__iter__方法),所以生成器是可迭代对象. 二,生成器分类在python中的表现形式 1,生成器函数:常规函数定义,但是,使用yield语句而不是return语句返回结果.yield语句一次返回一个结果,在每个结果中间,挂起函数状态,以便下次从它离开的地方继续执行day18-5.py def test(): yield 1 yield 2 g=test() print(g) print

python列表解析和生成器表达式

列表解析在需要改变列表而不是需要新建某列表时,可以使用列表解析.列表解析表达式为: [expr for iter_var in iterable] [expr for iter_var in iterable if cond_expr] 第一种语法:首先迭代iterable里所有内容,每一次迭代,都把iterable里相应内容放到iter_var中,再在表达式中应用该iter_var的内容,最后用表达式的计算值生成一个列表. 第二种语法:加入了判断语句,只有满足条件的内容才把iterable里相

Python中的列表解析和生成器表达式

Python中的列表解析和生成器表达式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.列表解析案例 1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 #@author :yinzhengjie 4 #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/

python基础(3)--条件判断循环语句与列表解析,生成器

判断循环语句语法说明: 1,if if boolean_expression: ... elif boolean_expression: ... else ... 2,while while boolean_expression: while_suite if boolean_expression2: continue if boolean_expression3: break else: else_suite 3,for for expression in object: for_suite

Python——迭代器和解析(3)

用迭代工具模拟zip和map ====================================================================== 我们已经知道了zip怎样组合可迭代对象,也知道了map怎样映射函数. >>> S1 = 'abc' >>> S2 = 'xyz123' >>> list(zip(S1,S2)) [('a', 'x'), ('b', 'y'), ('c', 'z')] >>> lis

Python函数编程——列表生成式和生成器

Python函数编程--列表生成式和生成器 一.列表生成式 现在有个需求,现有列表a=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],要求你把列表里的每个值加1,你怎么实现? 1.二逼青年版 生成一个新列表b,遍历列表a,把每个值加1后存在b里,最后再把a=b, 这样二逼的原因不言而喻,生成了新列表,浪费了内存空间. >>> a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> b = [] >>> for i in