Python 中形如 xx for xx in yy 的链表推导式

来源:互联网 发布:php 数据相加 编辑:程序博客网 时间:2024/05/19 23:04

在训练svm时,加载label.txt 文件中的label时,需要对label号的前后空白符进行删除。此时使用了链表推导式,借此学习和介绍下链表推导式。

如下:

unq_objnames = [l.strip() for l in open('labels.txt').readlines()]

这种形如  xx for  xx in yy 的形式就是链表推导式,

生成链表很简单的一种办法就是链表推导式,不仅容易看懂,还很好用:

     链表表达式在for语句前面,for后面就是对参数的限定。[XXX for yyy](必须要有方括号表示是链表),XXX表示链表,yyy限定XXX中参数。

举一个简单的例子:

  1. num=[1,2,3,4,5]  
  2.   
  3.   myvec=[x*2 for x in num]   
  4.   
  5.   print myvec 

输出:

[2,4,6,8,10]

所以,unq_objnames = [l.strip() for l in open('labels.txt').readlines()]的意思就是从labels.txt 中循环读取每个label并赋值给l,并且将l的前后空白符删除,并将得到的链表最终赋值给unq_objnames 
1 0