序列类型:bytearray、bytes、list、str与tuple
支持成员关系操作符(in)、大小计算函数(len())、分片([]),并且可迭代。
元组(tuple):元组值是固定的,可以使用tuple()函数将其他类型数据创建为元组,要修改有序序列,需使用list()将元组转换为列表。tuple():不指定参数时将返回一个空元组。元组的每个位置为对象引用。元组提供了两种方法:t.count(x),返回对象x在元组中出现的次数;t.index(x),返回对象在元组t中出现的最左边位置,元组不包含x时,残生ValueError异常。
命名的元组:collections模块提供了namedtuple()函数,该函数用于创建自定义的元组数据类型。
列表(list):包含0个或多个对象引用的有序序列,支持与字符串以及元组一样的分片与步距语法,这使得从列表中提取数据项很容易实现。与字符串和元组不同的是,列表是可变的。 任意可迭代的(列表、元组等)数据类型都可以使用序列拆分操作符进行拆分,即 *
对于组合数据类型(比如元组或列表)时,del语句删除的只是对组合类型的对象引用,若该引用指向的对象没有再被引用,那么该组合类型数据及其项将进入垃圾收集流程。
操作符*是用作多复制操作符还是序列拆分操作符并不会产生语义上的二义性。当* 出现在赋值操作的左边时,用作拆分操作符,出现在其他位置(比如在函数调用内)时,若用作单值操作符,则代表拆分操作符;若用作二进制操作符,则代表多复制操作符。
对列表中的数据项进行迭代处理,语法格式:for item in L:
list.extend() # 合并,将一个列表合并到另一个列表
list.append() # 追加,将元素追加到列表尾部
list.insert() # 插入,将元素插入到列表的任意位置
list.index() # 查询具有特定值的元素位置
list.remove() # 删除,删除具有指定值得元素
del list[n] # 删除,python的语句,删除指定位置的列表元素
list.pop() #获取并删除指定位置的元素,默认是 -1
先进先出(FIFO): list.append() list.pop(0) 队列
后进先出(LIFO): list.append() list.pop() 栈
in: 判断值是否存在,’Groucho’ in marex 存在返回True,否则返回 False
count(): 记录特定值出现在列表中的次数 marx.count(‘Bob’)
join: 将列表转换为字符串,’,’.join(marx),join()是一个字符串方法,是split()的逆过程。
sort():重新排列列表中的元素,改变原列表的内容。marx.sort,默认是升序,可使用reverse=True改为降序 marx.sort(reverse=True)
sorted(): 返回排好序的列表的副本,原列表内容不变。sort_marxs=sorted(marx)
len(): 获取列表的长度 len(marx)
=: 将一个列表复制给变量,改变其中一处,变量对应的值也改变
copy():将列表的值复制到另一个新的列表,同 list() , [:]
实现列表内涵的表达式语法格式是:
[expression for item in iterable]
[expression for item in iterable if condition] 等价于
temp = []
for item in iterable:
if condition:
temp.append(expression)
expression:数据项本身 或 数据项相关。
例:
codes = []
for sex in “MF”: # Male, Female
for size in “SMLX”: #Small, Medium,Large,eXtra large
if sex == “F” and size ==”X”:
continue
for color in “BGW”: # Black,Gray,White
codes.append(sex+size+color)
转换成列表内涵,实现相同功能:
codes=[s+z+c for s in “MF” for z in “SMLX” for c in “BGW”
if not(s == “F” and z == “X”) ]