一.通用序列操作:
列表中所有序列都可以进行特定的操作,包括索引(indexing).分片(slicing).序列相加(adding).乘法,成员资格,长度,最小值,最大值,下面会一一介绍这些操作法。
1.索引:序列是python中最基本的数据结构,序列中所有的序列都是有编号的,从0开始递推,可通过编号对序列的元素进行访问,并且支持正负索引。
>>>string=‘hello’ #自定义变量并赋值 >>>print string[0] #根据编号取元素
>>>print string[-1]
最后输出是下标为0的元素‘h‘与‘o’
2.分片:索引对单个元素进行访问,使用分片可以对一定范围内的元素进行访问(包前不包尾),分片通过冒号相隔的两个索引实现。在交互模式输入:
>>>number=[1,2,3,4,5,6,7,8] >>>nub=number[1:3] #索引为正数 >>>nub2=numbwe[-3:-1] #索引为负数,小的索引放前面,从倒数开始取值
>>>nub3=number[:] #也可不输入索引,则取得整个数组
>>>nub4=number[0:7:2] #对于这种情况python为我们提供了另一个参数----步数,该参数是隐形设置的,也可理解默认步长为1 >>>print nub
[2,3] >>>print nub2
[6,7]
>>>print nub3
[1,2,3,4,5,6,7,8]
>>>print nub4
[1,3,5,7]
3.序列相加:使用加好
>>>a=[1,2,3] >>>b=[4,5,6] >>>print a+b [1,2,3,4,5,6] >>>a=‘hello‘ >>>b=‘ word‘ >>>c=‘!‘ ‘hello word!‘
4.乘法:
>>>a=[5]*5 >>>print a [5,5,5,5,5] >>>b=‘None‘*3 >>>print b ‘NoneNoneNone‘
5.成员资格:为检测一个值是否存在与序列中,用‘in’运算符,这种运算符称为布尔运算符,返回的真值叫布尔值。
>>>a=‘hello word‘ >>>print ‘l‘ in a true >>>b=[‘zhangsan‘,‘lisi‘,‘wangwu‘] >>>print ‘lisi‘ in b true >>>c=[1,2,3,4,5] print 6 in c false
6.长度,最大,最小值:
>>>a=[100,500,300,900,1] >>>print len(a) 5 >>>print max(a) 900 >>>print min(b) 1 >>>print min(5,2,-7,-10) -10
二.列表(方法)
1.append():在列表的末尾添加新元素
语法: list.append(obj)
2.count():计算某个元素在列表中出现的次数
语法: list.count(obj)
3.extend():用于在列表末尾追加另一个序列中的多个值(用新列表扩展原来的列表)。
语法: list.extend(seq) list代表列表,seq代表元素列表
4.index():用于找出某个值与列表第一个匹配的索引位置
语法: list.index(seq)
5.insert():用于将对象插入列表
语法: list.insertindex,obj) index代表对象obj需要插入的索引位置,obj代表插入列表中的对象
6.pop():用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
语法: list.pop(obj=list[-1])
7.remove():用于移除列表中的某一个值的第一个匹配值
语法: list.remove(obj)
8.reverse():用于反向列表中的元素
语法: list.reverse()
9.sort():用于对原文列表进行排序
语法: list.sort(funce) funce为可选参数
10.clear():用于清空列表。
语法: list.clear()
11.copy():用于复制列表,类似于a[:]
语法: list.copy()
12.高级排序:如果希望元素按特定方式排序(不是sort方法默认的按升序排列元素),就可以自定义比较方便
sort方法有两个可选参数,即key和reverse,要使用他们就要通过名字指定,我们称之为关键字参数。
>>>field=[‘study‘,‘python‘,‘is‘,‘happy‘] >>>filed.sort(key=len) #按字符串由短到长排序 >>>filed >>>filed.sort(key=len,reverse=true) #按字符串由长到短排序,传递两个参数 >>>filed [‘python‘,‘study‘,‘happy‘,‘is‘] [‘is‘,‘happy‘,‘study‘,‘python‘] >>>num=[5,8,1,3,6] >>>num.sort(reverse=True) #排序后逆序 >>>num [8,6,5,3,1]
三.元组
python中的元组与列表相似,不同之处在于元组不能修改(前面多次提到的字符串也是不能被修改的)。创建元组的方法很简单:如果使用逗号分隔一些值就会自动创建元组,如:
>>>1,2,3 (1,2,3) >>>‘hello‘,‘word‘ (‘hello‘,‘word‘)
还可创建空元组:
>>>() () >>>(1,2,3) (1,2,3)
>>>(1,)
(1,)
1.tuple函数:tuple函数的功能和list函数基本一样,都是以一个序列作为参数,并把它转换成元组,如果参数是元组,参数就会被原样返回,如:
>>>tuple([‘Hello‘,‘Word’]) (‘Hello‘,‘Word’) >>>tuple(‘hello‘) (‘h‘,‘e‘,‘l‘,‘l‘,‘o‘) >>>tuple((‘Hello‘,‘Word’)) (‘Hello‘,‘Word’)
2.元组的基本操作:
1)访问元组:可以使用下标索引访问元组中的值
2)修改元组:元组中的数不可以被修改,但可以对元组进行连接组合,使用‘+’进行连接
3)删除元组:元组中的数不予许被删除,但可以只用del语句删除整个元组
4)元组索引,截取:因为元组也是一个序列,所以可以访问元组中指定位置的元素也可以截取索引中的一段元素
3.元组内置函数:
1)len(tuple)用于计算元组个数
2)max(tuple)用于计算元组中的最大值
3)min(tuple)用于计算元组中的最小值
4)tuple(seq)用于将列表转换成元组
因为元组不可变所以代码更安全。如果可能,能使用元组代替列表就尽量使用元组。如:
>>>t=(‘a‘,‘b‘,[‘A‘,‘B‘]) >>>t[2][0]=‘X‘ >>>t[2][1]=‘Y‘ >>>t (‘a‘,‘b‘,[‘X‘,‘Y‘])
此处使用了嵌套列表,一个列表包含另一个列表,也可以称为二维数组。