python列表解析是应用迭代协议的环境之一。
1.1 python列表解析基础知识
用法
[x*2 for x in L]
描述
python列表解析写在方括号内,代表最终生成一个新列表。
方括号内:for循环变量表达式开头+for循环头部。
python列表解析可以用for循环达到相应效果,但是列表解析比for循环快,因为使用了迭代协议。
示例
>>> L=list(range(1,6))
>>> L
[1, 2, 3, 4, 5]
>>> L1=[x*2 for x in L]
>>> L1
[2, 4, 6, 8, 10]
>>> L2=[]
>>> for x in L:
L2.append(x*2)
>>> L2
[2, 4, 6, 8, 10]
1.2 python文件列表解析
获取文件每行内容,并且去掉每行末尾的换行符。
可以通过python文件对象的readlines()方法,再用列表解析去掉换行符。
也可以不用readlines()方法,直接用文件迭代方式获取每行后去掉换行符。
示例
>>> path=r'E:\documents\F盘\iterator.py'
>>> f=open(path,encoding='utf-8')
>>> lines=f.readlines()
>>> f.close()
>>> lines
["S='梯阅线条'\n", 'print(S)\n', 'L=list(S)\n', 'print(L)']
>>> lis=[li.rstrip() for li in lines]
>>> lis
["S='梯阅线条'", 'print(S)', 'L=list(S)', 'print(L)']
>>> L3=[li.rstrip() for li in open(path,encoding='utf-8')]
>>> L3
["S='梯阅线条'", 'print(S)', 'L=list(S)', 'print(L)']
>>> [('S' in li,li[0]) for li in open(path,encoding='utf-8')]
[(True, 'S'), (True, 'p'), (True, 'L'), (False, 'p')]
1.3 python列表解析扩展
用法
[x*2 for x in L if x%2==0]
描述
python列表解析的for头部语句后面可以加速if判断条件,for变量表达式只会取符合if条件的变量值进行表达式运算。
示例
'''
iterator.py
S='梯阅线条'
print(S)
L=list(S)
print(L)
'''
>>> path=r'E:\documents\F盘\iterator.py'
>>> L5=[l.rstrip() for l in open(path,encoding='utf-8') if 'S' in l]
>>> L5
["S='梯阅线条'", 'print(S)', 'L=list(S)']
版权声明©:
本文首发微信公众号:梯阅线条,
原创不易,转载请注明出处。
更多内容参考python知识分享或软件测试开发目录。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




