序列(sequence)
定义:一组有顺序的元素组合,可以通过索引访问元素,一个索引为0,最后一个为-1(正向)
常见的数列类型
-
列表
-
元组
-
范围
使用方法介绍
-
列表(list)
-
定义:str = “hello”
-
取第一个:print(list[0])
-
取最后一个:print(list[-1])/print(len(str)-1)
-
长度:print(len(list))
-
切片:print(list【0:3】)
-
相加:必须是列表+列表
-
查找:index(3,0,5) # 找到3的位置从索引0开始到索引4,找不到报错
-
统计出现次数(count)
-
推导式: list =[1,2,3 ] list2 =[i+3 for i in list ] print(list2) # 4,5,6
-
替换:list = [1,3,2]
-
list[0] = 10
-
list[::] = 4,6,9 #替换所有值
-
in 和 not in:是否包含
-
重复:*次数
-
转化:list(“要转化的”)
-
增加:append(增加一个值) extend(增加一个列表) insert(i元素)指定位置增加
-
删除:pop(删除并返回最后一个) remove(移除第一次出现的)
-
元组(tuple)
不允许删除元组里的元素= 元组不可变
元组可以嵌套(如:x= str[2][1][0][1])
-
sale=collctions.namedtuple(“sale”,“productid customerid date price”) 逗号前的为元组类型的名称,逗号后的参数为字符串,用空格分隔,每个名称都代表该元组数据类型的一项,数据项如:x=sale(121,“2017-03-22”,1,10.99);调用某一项则可用x.price来实现,此处结果为10.99;
-
对于格式化替换,可用namedtuple._asdict()函数实现直接用名称替换索引,如:"{productid}{price}".format(x._asdict())。此方法用于多层元组较好,name即为最外层元组的name.
-
单个元素的元组需要加上逗号。
字符串,列表,元组转化
- 字符串直接可以转化为列表和元组
- 列表和元组可以在相互转化
- range(开始,结束,步长):不可变的序列
- 集合(set):容器中的对象是不能重复的且无序的
- 可变集合,set
- 不可变集合:frozenset 里面的元素必须是一个哈希对象(哈希,对象的唯一编码)
- 创建:s1= {1,2,3,4,3}#
- 访问:for循环遍历集合 for i in s1
常用方法
- D.clear() #移除D中的所有项
- D.copy() #返回D的副本
- D.fromkeys(seq[,val]) #返回从seq中获得的键和被设置为val的值的字典。可做类方法调用
- D.get(key[,default]) #如果D[key]存在,将其返回;否则返回给定的默认值None
- D.has_key(key) #检查D是否有给定键key
- D.items() #返回表示D项的(键,值)对列表
- D.iteritems() #从D.items()返回的(键,值)对中返回一个可迭代的对象
- D.iterkeys() #从D的键中返回一个可迭代对象
- D.itervalues() #从D的值中返回一个可迭代对象
- D.keys() #返回D键的列表
- D.pop(key[,d]) #移除并且返回对应给定键key或给定的默认值D的值
- D.popitem() #从D中移除任意一项,并将其作为(键,值)对返回
- D.setdefault(key[,default]) #如果D[key]存在则将其返回;否则返回默认值None
- D.update(other) #将other中的每一项加入到D中。
- D.values() #返回D中值的列表