2.2通用的序列操作
2.2.1索引
>>>greeting='hello'
>>>greeting[0]
'h'
#-1是最后一个元素的值
>>>greeting[-1]
'o'
#可以直接对字符串进行索引操作
>>>'hello'[0]
'h'
2.2.2切片
#提供两个索引来确定切片的范围,第一个索引对应的值包含在内,第二个不包含
>>>numbers=[1,2,3,4,5,6,7,8,9,10]
>>>numbers[3:6]
[4,5,6]
>>>numbers[0:1]
[1]
#如果要从列表末尾开始数,可以使用负数索引
>>>numbers[-3:-1]
[8,9]
>>>numbers[-3:]
[8,9,10]
>>>numbers[:3]
[1,2,3]
#要整个列表
>>>numbers[:]
[1,2,3,4,5,6,7,8,9,10]
-------------------------------------------------------------------------------------
#你也可以设置步长
>>>numbers[0:10:2]
[1,3,5,7,9]
#步长不能为0,但可为负数,即从右往左提取元素
>>>numbers[8:3:-1]
[9,8,7,6,5]
#步长为负时,从终点到开始。正是从开始到终点
>>>numbers[5::-2]
[6,4,2]
>>>numbers[:5:-2]
[10,8]
2.2.3序列相加
略
2.2.4乘法
#将序列和数x相乘时,将重复这个序列x次来创建一个新的序列
>>>'python'*5
'pythonpythonpythonpythonpython'
>>>[42]*10
[42,42,42,42,42,42,42,42,42,42]
#将列表初始化
>>>[None]*10
2.2.5成员资格
#要检查特定的值是否在序列时,可用运算符in。满足返回True,否则返回False
>>>'x' in 'glaxy'
True
2.3 列表:python的主力
2.3.1函数list
#可以使用函数list来将字符串转换成列表,可以将任何序列作为list的参数
>>>list('hello')
['h','e','l','l','o']
#将字符列表转换成字符串,其中somelist是要转换的列表
''.join(somelist)
2.3.2基本的列表操作
#删除列表的元素,使用del语句
>>>names=['zhang','wang','li']
>>>del names[2]
>>>names
['zhang','meng']
#给切片赋值
>>>name=list('perl')
>>>name
['p','e','r','l']
>>>name[2:]=list('ar')
>>>name
['p','e','a','r']
#在不替换元素的情况下插入新的元素
>>>numbers=[1,5]
>>>numbers[1:1]=[2,3,4]
>>>numbers
[1,2,3,4,5]
#与del numbers[1:4]等价
>>>numbers[1:4]=[]
>>>numbers
[1,5]
2.3.3列表方法
#方法append将一个对象加到列表末尾
>>>lst=[1,2,3]
>>>lst.append(4)
>>>lst
[1,2,3,4]
#方法clear就地清空列表内容
>>>lst.clear()
>>>lst
[]
#方法copy复制成为一个副本,在下面相当于使用a[:]或list(a)
>>>a=[1,2,3]
>>>b=a.copy()
>>>b[1]=4
>>>a
[1,2,3]
#方法count计算指定元素在列表出现次数
>>>[1,2,1,1].count(1)
3
#方法extend让你可以使用一个列表来拓展另一个列表
>>>a=[1,2,3]
>>>b=[4,5,6]
>>>a.extend(b)
>>>a
[1,2,3,4,5,6]
#方法index在列表中查找指定值第一次出现的索引
>>>a=[1,2,3]
>>>a.index(3)
2
#方法insert将一个对象插入列表
>>>a=[1,2,3]
>>>a.insert(2,'zhang')
>>>a
[1,2,'zhang',3]
#方法pop从列表中删除一个元素,并返回这一元素,pop是唯一修改列表并且返回一个非None的列表方法
>>>a=[1,2,3]
>>>a.pop()
>>>3
>>>a.pop(1)
2
#方法remove删除第一个为指定值的元素
>>>a=[1,2,3,2]
>>>a.remove(2)
>>>a
[1,3,2]
#方法reverse是列表顺序相反
>>>a=[1,2,3]
>>>a.reverse()
>>>a
[3,2,1]
#方法sort对列表就地排序,但是没有返回值
>>>x=[2,1,4,5,3]
>>>x.sort()
>>>x
[1,2,3,4,5]
#要获取排序后的列表,可使用函数sorted
>>>y=sorted(x)
>>>y
[1,2,3,4,5]
#并且总是返回一个列表
>>>sorted('python')
['p','y','t','h','o','n']
#sort接受两个参数:key和reverse
#你可以设置key作为排序的依据
>>>x=['zhang','wang','li','sun']
>>>x.sort(key=len)
>>>x
['li','sun','wang','zhang']
#可以设置reverse升序或是降序
>>>x=[2,3,4,1,5]
>>>x.sort(reverse=True)
>>>x
[5,4,3,2,1]
2.4元组:不可修改的序列
#创建元组
>>>1,2,3
(1,2,3)
>>>42
42
>>>42,
(42,)
#函数tuple将一个序列转化为元组
>>>tuple([1,2,3])
(1,2,3)