list函数
>>> list('hello')
['h', 'e', 'l', 'l', 'o']
基本的列表操作
1.改变列表:元素赋值
>>> x=[1,1,1]
>>> x[1]=2
>>> x
[1, 2, 1]
2.删除元素
del语句
>>> names=['Alice','Beth','Ceil','Dee-Dee','Eral']
>>> del names[2]
>>> names
['Alice', 'Beth', 'Dee-Dee', 'Eral']
3.分片赋值
>>> name=list('Perl')
>>> name
['P', 'e', 'r', 'l']
>>> name[2:]=list('ar')
>>> name
['P', 'e', 'a', 'r']
分片赋值时,可以使用与原序列不等长的序列将分片替换:
>>>name=list('Perl')
>>>name[1:]=list('ython')
>>>name
['p','y','t','h','o','n']
分片赋值语句可以在不需要任何原有元素的情况下插入新的元素。
>>>numbers=[1,5]
>>>numbers[1:1]=[2,3,4]
>>>numbers
[1,2,3,4,5]
通过分片赋值也可删除元素
>>>numbers
[1,2,3,4,5]
>>>numbers[1:4]=[ ]
>>>numbers
[1,5]
列表方法
方法是一个与某些对象有紧密联系的函数,对象可能是列表,数字,也可能是字符串或者其他类型的对象。
一般来说,方法可以这样调用:
对象.方法(参数)
1.append
append方法用于在列表末尾追加新的对象:
>>>lst=[1,2,3]
>>>lst.append(4)
>>>lst
[1,2,3,4]
2.count
count方法统计某个元素在列表中出现的次数
>>> ['to','be','or','not','to','be'].count('to')
2
>>> x=[[1,2],1,1,[2,1,[1,2]]]
>>> x.count(1)
2
>>> x.count([1,2])
1
3.extend
extend方法可以在列表的末尾一次性追加另一个序列中的多个值。换句话说,可以用新列表扩展原有的列表:
>>> a=[1,2,3]
>>> b=[4,5,6]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6]
4.index
index方法用于从列表中找出某个值得第一个匹配项的索引位置:
>>> knights=['We','are','the','knight','who','say','ni']
>>> knights.index('who')
4
5.insert
insert方法用于将对象插入到列表中:
>>>numbers=[1,2,3,4,5,6,7]
>>>numbers.insert(3,'four')
>>>numbers
[1,2,3,'four',5,6,7]
与extend方法一样,insert方法的操作也可以用分片赋值来实现。
6.pop
pop方法会移除列表中的一个元素(默认是最后一个),并且放回该元素的值。
7.remove
remove方法用于移除列表中某个值的第一个匹配项:
>>> x=['to','be','or','not','to','be']
>>> x.remove('be')
>>> x
['to', 'or', 'not', 'to', 'be']
8.reverse
reverse方法将列表中的元素反向存放
x.reverse()
9.sort
sort方法用于在原位置对列表进行排序。(改变原来列表,返回空值)
x.sort()
wrong! y=x.sort()
注:sorted函数可以获得已排序的列表副本
y=sorted(x)
10.高级排序如果希望元素能按照特定的方式进行排序(而不是sort函数默认的方式,即根据Python的默认规则按照升序排列元素),那么可以通过compare(x,y)的形式自定义比较函数。 compare(x,y)函数会在x<y时返回负数,在x>y是返回正数,如果x=y则返回0. 定义好改函数之后,就可以提供给sort方法作为参数了。内建函数cmp提供了比较函数的默认实现方式:
>>>cmp(42,32)
1
>>>cmp(pp,100)
-1
>>>cmp(10,10)
0
>>>numbers=[5,2,97]
>>>numbers.sort(cmp)
numbers
[2,5,7,9]
sort方法有另外连个可选的参数-key和reverse.如果要使用它们,那么就要通过名字来指定(这叫关键字参数)。
参数key与参数cmp类似——必须提供一个在排序过程中使用的函数。然而,该函数并不是直接用来确定对象的大小,而是为每个元素创建一个键,然后根据键来排序。因此,如果要根据元素的长度进行排序,那么可以使用len作为键函数:
>>> x=['addrdvark','abalone','acme','add','aerate']
>>> x.sort(key=len)
>>> x
['add', 'acme', 'aerate', 'abalone', 'addrdvark']
另一个关键字参数reverse是简单的布尔值。来指明是否要进行反向排序。
>>> x=[4,6,2,1,7,9]
>>> x.sort(reverse=True)
>>> x
[9, 7, 6, 4, 2, 1]
>>> x.sort(reverse=False)
>>> x
[1, 2, 4, 6, 7, 9]
元组:不可变序列
元组与列表一样,也是一种序列。唯一的不同是元组不能修改。
创建元组的语法很简单,如果用逗号分隔了一些值,那么就自动创建了元组。
>>>1,2,3
(1,2,3)
空元组可以用没有包含内容的两个圆括号来表示:
>>>( )
( )
如果要实现包含一个值的元组,必须加一个逗号。
tuple函数:以一个序列作为参数并把它转化为元组。如果参数就是元组,那么该参数就会被原样返回。
>>>tuple([1,2,3])
(1,2,3)