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

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

 [16,-4,10]

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

 sqdEvens = [x**2 for x in range(8) if not x % 2 ]

 for i in sqdEvens:
print i 0
4
16
36

例子

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

  • 迭代一个3行5列的矩阵
 [(x+1,y+1) for x in range(3) for y in range (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)
(3,3),(3,4),(3,5)]
  • 磁盘文件样例
 计算数据文件hhga.txt的单词个数(非空白字符的个数)

 f= open('hhga.txt', 'r')
print len([word for line in f for word in line.split()])

上面这段代码等于

 f = open('hhga.txt', 'r')
temp = []
for line in f:
for word in line.split():
temp.append(word)
print len(temp)

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

 import os
an = os. stat('hhga.txt').st_size #计算总字符数量
f.seek(0) #回到文件开头
cn = sum([len(word) for line in f for word in line.split()]) #字符数量
bn = an - cn
/****字符串的split()默认分隔符是空格 ' '
如果没有分隔符,就把整个字符串作为列表的一个元素***/

《python核心编程》读书笔记——列表解析的更多相关文章

  1. python高级编程读书笔记(一)

    python高级编程读书笔记(一) python 高级编程读书笔记,记录一下基础和高级用法 python2和python3兼容处理 使用sys模块使程序python2和python3兼容 import ...

  2. C++Windows核心编程读书笔记

    转自:http://www.makaidong.com/%E5%8D%9A%E5%AE%A2%E5%9B%AD%E6%96%87/71405.shtml "C++Windows核心编程读书笔 ...

  3. Python核心编程--学习笔记--6--序列(下)列表、元组

    11 列表 类似于C语言的数组,但是列表可以包含不同类型的任意对象.列表是可变类型. 创建列表——手动赋值.工厂函数: >>> aList = [12, 'abc'] >> ...

  4. pthon核心编程-读书笔记:知识点摘录与总结(方便理解和快速记忆)

    Python 中的列表(大小可变的数组)和字典(哈希表)就是内建于语言本身的.在核心语言中提供这些重要的构建单元,可以鼓励人们使用它们, 缩短开发时间与代码量,产生出可读性更好的代码.C不提供, c+ ...

  5. Python核心编程--学习笔记--3--Python基础

    本章介绍基本的Python语法.编程风格:并简要介绍标识符.变量和关键字,以及变量占用内存的分配和回收:最后给出一个较大的Python样例程序来体验这些特性. 1 语句和语法 1.1 注释 可以在一行 ...

  6. 《Python核心编程》笔记

    1 python是大小写敏感的 2 遍历一个字典的键值: for a in dict_obj.keys(): print a 3 列表解析功能可以让代码很简洁,比如:squared = [x ** 2 ...

  7. 《python核心编程》笔记——文件的创建、读取和显示

    创建文件(makeTextFile.py)脚本提醒用户输入一个尚不存在的文件名,然后由用户输入文件每一行,最后将所有文本写入文本文件 #!/usr/bin/env python 'makeTextFi ...

  8. Python核心编程--学习笔记--8--条件与循环

    本章讲述if.while.for以及与他们搭配的else.elif.break.continue.pass等语句. 1 if语句 语法:三部分——关键字if.条件表达式.代码块.(记住冒号) if c ...

  9. Python核心编程--学习笔记--2--Python起步(上)

    本章是对Python的主要特性做一个快速介绍. 1 介绍 交互执行时,解释器有两种提示符: 主提示符(>>>):解释器在等待输入下一个语句: 次提示符(...):解释器在等待输入当前 ...

随机推荐

  1. oracle ORA-01427: 单行子查询返回多个行

    ORA-01427: 单行子查询返回多个行 前几天开发的同事反馈一个问题,说前台系统报出了ORA错误,希望我们能看看是什么原因.java.sql.SQLException: ORA-01427: si ...

  2. 介绍开源的.net通信框架NetworkComms框架 源码分析(二十二 )TCPConnectionStatic

    原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架  作者是英国人  以前是收费的 目前作者已经开源  许可是 ...

  3. sscanf与正则表达式(转)

    今天翻google reader的时候看到这样一篇文章,介绍的是sscanf的高级用法.直到今天我才知道sscanf是可以直接用正则表达式的,惭愧. 在msdn中sscanf的声明如下 int ssc ...

  4. spring web.xml 难点配置总结

    web.xml web.xml是所有web项目的根源,没有它,任何web项目都启动不了,所以有必要了解相关的配置. ContextLoderListener,ContextLoaderServlet, ...

  5. 生成SSH key

    1.打开终端 2.输入cd ~/.ssh 3.输入ssh-keygen -t rsa -C (邮箱) 4.前往文件夹 /Users/admin/.ssh/id_rsa 5.找到id_rsa.pub , ...

  6. JS入门之ActiveXObject对象(转载)

    JS入门之ActiveXObject对象   此对象提供自动化对象的接口.   function ActiveXObject(ProgID : String [, location : String] ...

  7. 纯JS实现中国行政区域上下联动选择地址

    一.实现目的: 如标题所述,通过JS来实现地址的选取,上一篇博客介绍的方式是通过java读取txt资源文件来实现地址的选择,通过ajax方式访问服务器实现省市区联动.此篇中将介绍如何使用JS实现相同功 ...

  8. JavaWeb 学习009-4个页面,5条sql语句(添加、查看、修改、删除)

    ===========++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++==+++++++++ 2016-12-3------ ...

  9. 利用node构建本地服务

    利用node构建本地服务 首先安装下node.js,地址为https://nodejs.org/en/,然后安装npm. node.js的中文api地址http://nodeapi.ucdok.com ...

  10. Div+CSS命名规范

    注意事项:1.命名遵循驼峰式  2.尽量用中文  3.不加中杠和下划线   4.尽量不缩写,除非一看就明白的单词 头:header   标志:logo  友情链接:friendlink    内容:c ...