Python内建序列之列表

列表:List  列表可以使用所有适用于序列的标准操作。 友情链接: 序列的通用操作

定义:列表的各个元素通过逗号分隔,其中列表元素本身也可以是列表,写在方括号内。

[root@rhel6164 ~]# python
Python 2.6.6 (r266:84292, Apr 11 2011, 15:50:32)
[GCC 4.4.4 20100726 (Red Hat 4.4.4-13)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> name=['Clef','luo']
>>> name[0]
'Clef'
>>> test=[name,10] #列表元素本身也是一个列表
>>> test
[['Clef', 'luo'], 10] 

基本的列表操作:

1. 改变列表:元素赋值

[root@rhel6164 ~]# python
Python 2.6.6 (r266:84292, Apr 11 2011, 15:50:32)
[GCC 4.4.4 20100726 (Red Hat 4.4.4-13)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> x=[1,2,3]
>>> x
[1, 2, 3]
>>> x[1]=4 #使用索引来标记某个特定位置,然后对位置明确的元素赋值
>>> x
[1, 4, 3]
>>>

2. 删除元素:使用del语句

[root@rhel6164 ~]# python
Python 2.6.6 (r266:84292, Apr 11 2011, 15:50:32)
[GCC 4.4.4 20100726 (Red Hat 4.4.4-13)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> name=['Clef','luo']
>>> del name[1] #直接删除列表的'luo'这个元素
>>> name
['Clef']
>>>

3. 分片赋值

[root@rhel6164 ~]# python
Python 2.6.6 (r266:84292, Apr 11 2011, 15:50:32)
[GCC 4.4.4 20100726 (Red Hat 4.4.4-13)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> name=list('Perl')
>>> name
['P', 'e', 'r', 'l']
>>> name[2:]=list('ar') #对name指定序号为2和以后的进行赋值
>>> name
['P', 'e', 'a', 'r']
>>> numbers=[1,5]
>>> numbers
[1, 5]
>>> numbers[1:1]=[2,3,4] #直接插入新的列表元素
>>> numbers
[1, 2, 3, 4, 5]
>>> numbers[1:4]=[] #指定删除相应的列表元素,和上面del语句效果一样的
>>> numbers
[1, 5]

注意

[clef@rhel6164 ~]$ python
Python 2.6.6 (r266:84292, Apr 11 2011, 15:50:32)
[GCC 4.4.4 20100726 (Red Hat 4.4.4-13)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> name=list('Perl') #初始化列表name
>>> name1=name #直接赋值,表明name和name1同时引用一个列表
>>> name2=name[:] #把整个列表切片后再赋值,将会得到一个列表的副本,name2和name并不是指向同一个列表
>>> name[2]='x'#修改列表name的值
>>> name
['P', 'e', 'x', 'l']
>>> name1 #name1同时一起被修改了
['P', 'e', 'x', 'l']
>>> name2 #但是name2并没有同时一起被修改
['P', 'e', 'r', 'l']

列表方法:调用规则,对象.方法(参数)

1. append方法

用于在列表末尾追加新的对象

>>> numbers=[1,2,3]
>>> numbers.append(4) #直接追加新的列表元素
>>> numbers
[1, 2, 3, 4]

2. count方法

统计某个元素在列表中出现的次数

>>> numbers=[1,2,1,2,3,4,2]
>>> numbers.count(2) #统计列表元素'2'出现的次数
3

3. extend方法

可以再列表的末尾一次性追加另一个序列中的多个值,这个方法很像序列相加,但是,extend方法会改变列表的原始值,而序列相加不会

>>> a=[1,2,3]
>>> b=[4,5,6]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6]

4. index方法

用于从列表中找出某个值第一个匹配项的索引位置

>>> numbers
[1, 2, 1, 2, 3, 4, 2]
>>> numbers.index(2)
1

5. insert方法

用于将对象插入到指定序号的列表中

>>> numbers
[1, 2, 1, 2, 3, 4, 2]
>>> numbers.insert(2,'inserting') #指定序号为2的地方插入'inserting'
>>> numbers
[1, 2, 'inserting', 1, 2, 3, 4, 2]

6. pop方法

移除列表中的一个元素(默认是最后一个),并且返回该元素的值,该方法是唯一一个既能修改列表又返回元素值(除None)的列表方法

>>> x=[1,2,3]
>>> x.append(x.pop()) #移除最后一个元素,并返回该元素的值,然后用append方法追加到列表的末尾
>>> x
[1, 2, 3]

7. remove方法

用于移除列表中某个值的第一个匹配项

>>> x=[1,2,3,2,4,5]
>>> x.remove(2) #只移除了列表中的第一个匹配到'2'的元素
>>> x
[1, 3, 2, 4, 5]

8. reverse方法

将列表中元素方向存放

>>> x=[1,2,3,4,5]
>>> x.reverse()
>>> x
[5, 4, 3, 2, 1]

9. sort方法

对原列表进行排序,并返回空值

>>> x=[4,2,3,5,1]
>>> y=x.sort() #对列表x进行排序,并把返回值赋给y
>>> x #x列表已经排序
[1, 2, 3, 4, 5]
>>> y #y为空,印证了上面说的,sort方法返回空值
>>>

10. 高级排序

如果不想按照sort方法默认的方式进行排序,可以通过compare(x,y)的形式自定义比较函数,compare(x,y)函数会在x<y是返回负数,在x>y是返回正数,如果x=y时则返回0,定义好该函数之后,就可以提供给sort方法作为参数了。同样,key、reverse还是可以作为sort方法的参数

>>> cmp(1,2)
-1
>>> cmp(2,1)
1
>>> cmp(1,1)
0
>>> x=[5,2,9,7]
>>> x.sort(cmp)
>>> x=['abc','ab','abcd','a']
>>> x.sort(key=len)
>>> x
['a', 'ab', 'abc', 'abcd']
>>> x=[5,2,9,7]
>>> x.sort(reverse=True)
>>> x
[9, 7, 5, 2]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值