列表与元组

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)





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值