Real-Ying

《python核心编程》读书笔记——列表解析

列表解析是列表类型的方法,这种方法结合了列表的方括弧、for循环、if语句。

 

  1. 用for把处理后的值放入列表:
1 squared = [ x**2 for x in range(4) ]
2 for i in squared:
3     print i
4 
5 0
6 1
7 4
8 9
1 [ i*2 for i in [8,-2,5] ]
2 
3 [16,-4,10]

      2. 挑选符合要求的值放入列表

1 sqdEvens = [x**2 for x in range(8) if not x % 2 ]
2 
3 for i in sqdEvens:
4         print i
5 
6 0
7 4
8 16
9 36

 

例子

 

支持多重嵌套for循环以及多个if句子

  • 迭代一个3行5列的矩阵
1 [(x+1,y+1) for x in range(3) for y in range (5)]
2 
3 
4 
5 [(1,1),(1,2),(1,3),(1,4),(1,5),(2,1),(2,2),(2,3),(2,4)(2,5),(3,1),(3,2)
6 (3,3),(3,4),(3,5)]

 

 

  • 磁盘文件样例
1 计算数据文件hhga.txt的单词个数(非空白字符的个数)
2 
3 f= open('hhga.txt', 'r')
4 print len([word for line in f for word in line.split()])

上面这段代码等于

1 f = open('hhga.txt', 'r')
2 temp = []
3 for line in f:
4     for word in line.split():
5         temp.append(word)
6 print len(temp)

接着进行计算字符和空白符的数量的程序,先用seek(0)回到开头

1 import os
2 an = os. stat('hhga.txt').st_size    #计算总字符数量
3 f.seek(0)                                      #回到文件开头
4 cn = sum([len(word) for line in f for word in line.split()])     #字符数量
5 bn = an - cn
6                                             

 

 

/****字符串的split()默认分隔符是空格 ' '
如果没有分隔符,就把整个字符串作为列表的一个元素***/

posted on 2015-07-09 22:14  Real-Ying  阅读(405)  评论(0编辑  收藏  举报

导航