0.Python中的数据类型
序列:有唯一的序号
映射:有名字(字典)
set:既不是序列也不是映射
1.序列:
序列中每个元素都会被分配一个序号(下标、索引)
Python共有6种内建序列类型:列表、元组(不可变列表)、字符串、Unicode字符串、buffer对象、xrange对象
2.序列的通用操作:
索引:使用成员的下标来访问元素: a[0]
分片:访问一定范围的元素 ,提取两个索引之前的元素(包括起点,不包括终点): a[start:end:step] a[-3](最后三个) a[:3]前三个
相加:将两个相同类型序列合并为同一个序列,后一个序列在前一个后面 a+b
乘法:将一个序列和一个数字n相乘,生成一个新的序列,原有序列元素重复n遍
成员资格:使用“in”或者“not in”检查一个值是否在序列内 1 in a , 1 not in a
长度,最大值,最小值: len(a)、 max(a)、min(a)
3,列表(list)的特性函数(方法)
内建函数:
生成空列表(序列):a = [none]
list():生成一个列表
>>>list('hello')
['h', 'e' , 'l' , 'l' , 'o'] 【字符串->列表】
列表->字符串 ''.join(somelist)
删除元素:del a[index]
分片赋值:a[start1:end1] = b[start2:end2] b也是一个list,[start1, end1)和[start2, end2)可以不等长,使用的是将[start2, end2)将[start1, end1)进行替换
list对象方法:
append:在结尾追加元素 a.append()
cout:统计某个元素在列表中出现的次数 a.count()
extend:在原有list末尾一次性的追加另一个sequence中的多个值 a.expend(b)
extend与“+”的区别 a+b和a.expend(b) a+b是生成一个新的list,原有a和b不变, a.expend(b)是修改a,在其末尾添加b
index:从list中找出某个值第一个匹配项的索引位置,如果没有找到,会抛出一个异常
insert:将对象插入到list的固定位置 a.insert(index, object) 【插入到末尾使用append】
pop:删除list中的一个元素(默认最后一个),并且返回该元素的值 a.pop(index)
【pop是唯一一个即能修改列表又能返回元素值(除None)的列表方法】
remove:用来移除list中某个值的第一个匹配项 x.remove(object)
reverse:将列表中的元素反向存放(修改原有列表) x.reverse()
sort:在原位置(修改原有list)进行排序,而不是返回一个已排序的副本
sorted:获取已排序的列表副本
高级排序:使用sort方法,可以自定义key(排序关键字)、compare(排序比较操作符),同时设置reverse(是否反向输出)
4.列表操作需要注意的地方
列表复制
x = [1,2,3] y = x,这个时候,y是x的一个引用,对y的修改,也会作用到x上,正确的做法应该是 y = x[:]