在训练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中参数。
举一个简单的例子:
[2,4,6,8,10]
所以,unq_objnames = [l.strip() for l in open('labels.txt').readlines()]的意思就是从labels.txt 中循环读取每个label并赋值给l,并且将l的前后空白符删除,并将得到的链表最终赋值给unq_objnames