列表和元组
序列概述
python支持一种数据结构的基本概念,名为容器。
两种主要容器:序列(列表和元组)和映射(字典)。
序列元素都有编号,映射中的元素有名称(键)。
元组 不可修改
通用序列操作
索引
python中没有字符的类型,一个字符就是只包含一个字符的字符串
A = 'hello' #字符串,由字符组成的序列
A[0] = 'hello'[0]
h
切片
tag = '<a herf="http://www.python.org">python web site</a>'
tag[9:30]
'http://www.python.org'
tag[32:-4]
'python web site'
简写
num = [1,2,3,4,5,6,7,8,9,10]
num[7:10]
[8,9,10]
num[-3:-1] //无法达到-1元素
[8,9]
num[-3:0] //不能倒序
[]
num[:]=num=num[0:]
[1,2,3,4,5,6,7,8,9,10]
num[:-1]
[1,2,3,4,5,6,7,8,9]
num[1:]
[2,3,4,5,6,7,8,9,10]
大步长
num[0:10:2]
[1,3,5,7,9]
num[::4]
[1,5,9]
num[8:3:-1] #逆序切片 num[::-1] 逆序打印
[9,8,7,6,5]
序列相加
[1,2,3]+[4,5,6]
[1,2,3,4,5,6]
'hello,'+'nerd'
'hello,nerd'
相乘
'nerd'*3
'nerdnerdnerd'
[32]*3
[32,32,32]
成员资格
A = 'string'
's' in A
True
'x' in A
False
'ing' in A
True
B = ['my','list','there']
'my' in B
True
len、max、min
num = [12,3,5,7,89,6,433]
len(num)
7
max(num)
433
min(num)
3
min(9,1,2,1,5,0,36)
0
列表
list()
A=list('hello')
A
['h','e','l','l','o']
''.join(A)
'hello'
基本操作
修改
x = [1,1,3]
x[2]=1
[1,1,1]
删除
names=['Alice','Beth','Earl','Maxi','Chaling']
del names[2]
['Alice','Beth','Maxi','Chaling']
切片赋值
name = list('perl')
name[2:]=list('al')
name
['p','e','a','l']
num = [1,5]
num[1:1]=[2,3,4]
[1,2,3,4,5]
num[1:4]=[]
[1,5]
列表方法
append
a=[]
a.append(1,2,3)
[[1,2,3]]
clear
a.clear() #清空列表
[]
copy
a=[1,2,3]
b=a //b改变a也会改变
b[1]=4
a
[1,4.3]
b=a.copy() //a不随b改变而改变
count
['1','sf','netli','2','1','ad','ap'].count('1')
2
x = [[1,2],[1,3],1,1,[2,3],[[1,2],[2,3]]
x.count(1)
2
x.count([1,2])
1
extend
a=[1,2,3]
b=[4,5,6]
a.extend(b)
[1,2,3,4,5,6]
a=a+b //效率低
a[len(a):]=b
[1,2,3,4,5,6] //可读性不高
idnex
knight=['we','are','the','knigth','who','say','ni']
knight.index('the')
2
insert
x = [1,2,3,5,6,7]
x.insert(3,'four')
[1,2,3,'four',5,6,7]
pop
唯一一个既修改列表又返回非None值的列表方法
x = [1,2,3]
x.pop()
3
x
[1,2]
x.pop(1)
2
x
[1]
remove
x = [1,2,3] //修改列表 不返回任何值
x.remove(3)
[1,2]
reverse
x = [1,2,3] //修改列表 不返回任何值
x.reverse()
[3,2,1]
reversed(x) //不返回列表 返回迭代器
sort
Sorting Mini-HOW TO”:https://wiki.python. org/moin/HowTo/Sorting
a = [6,4,5,7,2,4,6,3] //修改列表
a.sort()
[2,3,4,4,5,6,6,7]
b = a.sort() //不返回任何值
print(b)
None
sorted('python')
['h', 'n', 'o', 'p', 't', 'y']
>>> x = ['aardvark', 'abalone', 'acme', 'add', 'aerate']
>>> x.sort(key=len)
>>> x
['add', 'acme', 'aerate', 'abalone', 'aardvark']
x=[4,6,2,1,7,9]
x.sort(reverse=True)
[9,7,6,4,2,1]
元组
无法修改
1,2,3
(1,2,3)
1,
(1,)
tuple('abc')
('a','b','c')
tuple([1,2,3])
(1,2,3)
['aardvark 'abalone', 'acme', 'add', 'aerate']
x.sort(key=len)
x
['add', 'acme', 'aerate', 'abalone', 'aardvark']
x=[4,6,2,1,7,9]
x.sort(reverse=True)
[9,7,6,4,2,1]