python 列表解析(List Comprehensions)

列表解析(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个单词。















你可能感兴趣的:(python)