元组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