元组tuple:
类似list,只是tuple是不可变的list。类似java的String都是不可改变的。注意:tuple没有方法(有待考证),不可以像list那样那个list.pop 或者list.append()等操作。
但是可以用 in 来判断一个元素是否在tuple中:

mytuple = ('a', 'b', 'c')
print 'a' in mytuple, 'd' in mytuple

tuple与list相比较:
tuple更安全,提供了“写保护”,当想要一组只用来遍历的数据时推荐使用tuple。
tuple可做dictionary的key,但是list不行,因为dictionary要求key是不可变得。
===============================
变量声明:
一次赋多值:

#这里a b c仅仅是变量名
(a, b, c) = (1, 2, 3)

另外应用到range()函数:

#这里Mon Tue都是变量名
(Mon, Tue, Wed, Thu, Fri, Sat, Sun) = range(7)

range()接受一个数值,返回从0起到n-1的list。

===============================
格式化字符串:
注意这个写法:

#当使用只包含一个元素的tuple的时候,要在元素后面加上逗号,告诉python这是一个tuple,而不是加了括号的变量。
" my name is %s " % (name, )

%f格式符:

对应十进制浮点数,默认打印到小数点后6位。相关的有 %.2f 打印两位小数; %+.2f打印

join() split():

字符串join split 两者正好相反,互逆。join按照规则把list连接成字符串,split按规则把字符串分割成list

mylist = ['a', 'b', 'c']
mylist_str = ";".join(mylist)
#打印出来一看,一样的
print mylist_str.split(';'), mylist #split还能接受一个可选参数,第二个参数规定了分割次数
print mylist_str.split(';', 1) #如果不给任何参数,split默认是按照 空白 分割的。
#好处是可以结合join来统一字符串中的空白
mystr = "aaa\nbbb ccc\t ddd"#\n换行 \t制表符,都属于空白
mystr2 = ' '.join(mystr.split())
print mystr, mystr2 #ljust 向字符串末尾填充空格来补齐。字符串长度大于给定长度则不改动,小于则用空格补齐
#如用上面的mystr2举例
print mystr2.ljust(50)
print mystr2.ljust(10)

========================
重点:映射list 或称 list解析

mydic = {'one':'a',
'two':'b',
'three':'c',}
#items返回一个形如 [(k1, v1), (k2, v2),...]的,以tuple为元素的list
print mydic.items() #for循环每次循环拿出mydic.items()中的一个元素(也就是一个tuple,里面放的是k, v),分别赋值给kk,vv
#然后保存给最外层的list中,然后继续下一次循环,直到遍历完mydic.items()
print [kk for kk, vv in mydic.items()]
print [vv for kk, vv in mydic.items()]

列表过滤: 在列表解析的基础上添加了筛选条件。

l = ['a', 'b'. 'c']
l2 = [l2 for l2 in l if l2=='c']#表示如果遍历的元素是 c 那就留下,否则不要
print l2 l3 = [l3 for l3 in l if l3 != 'c']#表示如果遍历的元素不是 c 那就留下,否则不要
print l3

devi into python 笔记(二)元组 变量声明 和列表解析的更多相关文章

  1. Go语言学习笔记二: 变量

    Go语言学习笔记二: 变量 今天又学了一招如何查看go的版本的命令:go version.另外上一个笔记中的代码还可以使用go run hello.go来运行,只是这种方式不会生成exe文件. 定义变 ...

  2. python基础深入(元组、字符串、列表、字典)

    python基础深入(元组.字符串.列表.字典) 一.列表 1.追加 >>>list = [1,2,3,4] #用于在列表末尾添加新的对象,只能单个添加,该方法无返回值,但是会修改原 ...

  3. python笔记二(数据类型和变量、编码方式、字符串的编码、字符串的格式化)

    一.数据类型 python可以直接处理的数据类型有:整数.浮点数.字符串.布尔值.空值. 整数 浮点数 字符串:双引号内嵌套单引号,可以输出 i'm ok. 也可以用\来实现,\n 换行 \t tab ...

  4. python笔记:#008#变量的命名

    变量的命名 目标 标识符和关键字 变量的命名规则 0.1 标识符和关键字 1.1 标识符 标示符就是程序员定义的 变量名.函数名 名字 需要有 见名知义 的效果,见下图: 标示符可以由 字母.下划线 ...

  5. python笔记:#007#变量

    变量的基本使用 程序就是用来处理数据的,而变量就是用来存储数据的 目标 变量定义 变量的类型 变量的命名 01. 变量定义 在 Python 中,每个变量 在使用前都必须赋值,变量 赋值以后 该变量 ...

  6. python笔记二

    一 运算符 1算术运算+ - * /  % ** //其中%为取余,**为取幂如2**10=1024    9//4=2 需要注意的是python2.7中如9/2=4 需要正确表示,则在开头添加 fr ...

  7. Python笔记(二)

    python笔记 函数式编程 函数 函数是Python内建支持一种封装(将大段代码拆成函数) 通过函数的调用,可以将复制的任务分解. 函数式编程(Functional Programming) 计算机 ...

  8. python学习笔记(二)---for循环与操作列表

    内容概要 for循环 range(start,end,step)函数 生成随机数列表 list()函数 将range()的结果整合到某个列表 列表的操作 切片(start: end :step) 元组 ...

  9. Python(五)之迭代器和列表解析

    Python迭代器和列表解析 迭代器 例如: In [1]: l1 = [1,2,3,4,5] dir(i1)可以看到内置方法'__iter__' 生成一个迭代器: l1.__iter__,或i2 = ...

随机推荐

  1. Spring+Maven+Eclipse构建Web工程

    转载请注明出处:http://www.cnblogs.com/lidabnu/p/5657439.html 1 环境准备 下载Eclipse:http://www.eclipse.org/downlo ...

  2. LevelDB windows vs2013 c++编译和测试

    引用: (src1) :http://download.csdn.net/detail/flyfish1986/8881263(这里有下载地址) (src2) :http://blog.csdn.ne ...

  3. visual studio vs2010 vs2013 显示详细调试信息方法;vs debug 出错怎么办,你需要的不是答案,是方法。

    显示详细的输出信息: 选项--项目和解决方案--生成并运行--MSBuild项目生成输出详细信息: 这样在输出目录就会显示详细的错误信息,可以自己分析了.

  4. vs的watch使用

    VC调试器高级应用----WATCH窗口篇 一.格式化数据和表达式赋值语句. 常用变量格式化符(表达式的值后跟逗号,接格式化符,如"(int)0xFFFF,d"):d  :有符号的 ...

  5. Object-API-NSLog

    NSLog中的基础数据类型 输出格式: NSLog("") char: %c short int: %hi %hx %ho unsigned short int: %hu %hx ...

  6. gcc 生成动态库时-fpic选项是什么意思。

    -f后面跟一些编译选项,PIC是其中一种,表示生成位置无关代码(Position Independent Code)

  7. ArrayList 转换为DataTable

    , }; ArrayList list = new ArrayList(arr); var dt = new DataTable(); DataColumn dc = new DataColumn(& ...

  8. Windows 8 系统完全上手指南 - 非常详尽的 Win8 系统入门学习手册与使用技巧专题教程!

    每次当有新版本的操作系统发布的时候,市面上总会冒出各种从入门到精通类的学习书籍,这次最新的 Windows 8 也不例外!不过,今天给大家送上免费的大礼——<Windows 8 完全上手指南&g ...

  9. Maven构建灵活配置文件

    本文解决以下问题: Maven下面启动Main函数: 配置JDK版本 如何配置文件,在开发部署测试各个不同版本间无缝切换配置文件: 启动Main函数 Maven默认是不支持Main函数程序,需要在po ...

  10. 【web安全】第五弹:burpsuite proxy模块的一些理解

    作为一只小小小白的安全新手,只会简单的用sqlmap扫扫网站,用burpsuite的proxy模块拦截一些请求.最近又对proxy有点儿小理解,记录之. 1. 查看sqlmap注入的语句以及HTTP ...