(一) 字典,列表,序列
字典:关键字-值的形式存储,无序
用{“key”:”value”,”key 2” ,”value 2” ,….}形式
列表:值有序存储,索引从0开始
用[value0,value1…]形式
列表索引可以为负,-1表示最后一个元素
分片索引列表构成一个新的列表
li = ["a", "b", "c", "d", "e"]
则:li[0,3] 为[‘a’,’b’,’c’](从0到3,但不包含li[3])
Li[1,-1] 为 [‘b’,’c’,’d’](从li[1]到li[4],不含li[4]----因为li[4]=li[-1])
(或理解为第一个索引指定了想要的第一个元素,第二个索引指定不想要的第一个元素,中间的即为分片索引结果)
序列:不可变列表,一旦创建就不能用任何方式修改
定义方式同列表,但用()包括
注:(引自深入学习Python)那么序列有什么好处呢?
序列比列表操作速度快。如果你定义了一个值集合常量,并且唯一要用它做的是不断地遍历它,使用序列代替列表。
字典关键字可以是整数,字符串和“几种其它的类型”,序列就是那些类型之一。序列可以在字典中被用作关键字,但是列表不行。
序列可以用在字符串格式化
序列可以转化成列表,反之亦然。内置的 tuple 函数接收一个列表,返回一个有着相同元素的序列。而 list 函数接收一个序列,返回一个列表。从效果上看,tuple 冻结一个列表,而 list 解冻一个序列。
(二) 变量
a) “=”赋值,“==”判断是否等值
(三) 格式化字符串
a) 基本用法,类似于c的语法,用%s,%d等格式化
b) “+”是连接字符串的操作符
c) 用join和split函数连接和分割字符串操作(仅限于字符串,不能强制类型转换)
String.split(delimiter,1)分割出列表中第一个元素
(四) 映射列表和过滤列表
a) 映射是通过循环遍历一个列表,并对每个元素应用一个函数,然后返回一个包含为计算后的值的新列表(列表映射不改变被映射的列表)
b) Eg:
>>>ul = {"uid":5,"username":"sofoo","pwd":"sofoopwd","email":"sofool@gmail.com"}
可以对以上字典进行如下映射:(对key和value进行字符串格式化)
>>>["%s = %s"%(k,ul[k]) for k in ul.keys()]
c) 过滤列表
[mapping-expression for element in source-list if filter-expression]
过滤表达式可以是任何计算真假值的表达式,对于过滤表达式计算出真值的元素将被包含在映射中