python 列表解析(List Comprehensions)

本文介绍了Python中的列表解析,这是一种创建列表的简洁高效方式。通过列表解析,可以方便地处理文本,例如对文本文件的内容进行操作。以text.txt文件为例,展示了如何使用列表解析来处理文件内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

列表解析(List comprehensions,这是一个简单方便的工具。在平时我们会常常用到,现在将它常见的用法总结一下。
其语法表示如下:
[exp for iter in iterable]
例1:
print map(lambda x: x ** 3,range(4))
#输出[0, 1, 8, 27]
以上可以用列表解析代替,如下:
print [x ** 3 for x in range(4)]
列表解析也可以取代map(),lambda,fiflter()函数,并且其更加简单,高效。可以与if语句结合用。
语法表示如下:
[exp for iter in iterable if cond_exp]
l1=[11,10,5,3,9,12,14,15]
print filter(lambda x: x % 2,l1)
#输出:[11, 5, 3, 9, 15]
用列表解析表示为:
print [x for x in l1 if x % 2]
对于产生一个随机3*4矩阵表示如下:
print [(x,y) for x in range(3) for y in range(4)]
#输出:[(0, 0), (0, 1), (0, 2), (0, 3), (1, 0), (1, 1), (1, 2), (1, 3), (2, 0), (2, 1), (2, 2), (2, 3)]

是不是很方便呢?很简洁呢?

同样对于文本也可以用列表解析处理,现在有个text.txt文件。

文件的内容为:

This is an experimental Tensorflow implementation of Faster RCNN - a convnet for object detection with a region proposal network.
现在用列表解析计算单词数目:
f=open('test.txt','r')
print len([word for line in f for word in line.split()])
#输出:20 
表示有20个单词。















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值