列表、元组以及字符串

来源:互联网 发布:南泥湾种鸦片 知乎 编辑:程序博客网 时间:2024/06/05 04:42

最近在开始学习python,看到了列表、元组和字符串这三种序列,觉得它们之间还是有一些需要区分的地方,所以总结一下:

在看到的代码之中,可以一眼就区分开这三种序列,列表是形如[1,2,3]这样的一种序列,它里面的元素可以是数字、字符、字符串(甚至是其他类型的序列,这是一些比较灵活的使用方式);而元组是形如(1,2,3)这样的序列;至于字符串就是形如'abcdef'。对于这三种序列,它们之间最明显的区别就是,列表是可变的而元组和字符串是不可变的,所以如果给后面两种序列进行索引赋值就会产生错误:

>>> a=(1,2,3)>>> a[1]=3Traceback (most recent call last):  File "<stdin>", line 1, in <module>TypeError: 'tuple' object does not support item assignment

>>> a='123'>>> a[1]='3'Traceback (most recent call last):  File "<stdin>", line 1, in <module>TypeError: 'str' object does not support item assignment
但是列表可以改变其中的内容:

>>> a=[1,2,3]>>> a[1]=3>>> a[1, 3, 3]
所以,如果要需要一个动态序列,列表就是一个非常好的选择

这三个序列都有着自己的方法:

列表方法:

1.append:用于列表末尾添加对象

>>> a=[1,2,3]>>> a.append(4)>>> a[1, 2, 3, 4]
这个方法是直接改变原来的列表而不是重新返回一个新列表,在使用的时候需要注意这一点

2.count:用于统计某一个元素的个数

>>> a=[1,2,1,3,4,1]>>> a.count(1)3>>> a.count(2)1

3.extend:append的升级版,可以在序列的末尾增加多个值

>>> a=[1,2,3]>>> a.extend(2,3)Traceback (most recent call last):  File "<stdin>", line 1, in <module>TypeError: extend() takes exactly one argument (2 given)>>> a.extend([2,3])>>> a[1, 2, 3, 2, 3]

在添加值的时候,不能直接以多个值作为参数,而是应当将要添加的值写成列表的形式,其实与列表的连接比较像,但是,这个函数是直接改变原列表的值而不是构建新的列表。

4.index:索引的功能,返回第一个匹配项的位置

>>> a[1, 2, 3, 2, 3]>>> a.index(2)1
从0开始算起。如果未找到,会引发异常。

5.insert:插入对象到指定的位置

>>> a[1, 2, 3, 2, 3]>>> a.insert(2,5)>>> a[1, 2, 5, 3, 2, 3]
前一个参数是位置信息,后一参数是插入的值

6.pop:移除最后一个元素并返回(栈)

>>> a[1, 2, 5, 3, 2, 3]>>> a.pop()3>>> a[1, 2, 5, 3, 2]
7.remove:移除第一个匹配项

>>> a[1, 2, 5, 3, 2]>>> a.remove(2)>>> a[1, 5, 3, 2]
同样,如果找不到匹配项,则会返回异常

8.reverse:反向存放

>>> a[1, 5, 3, 2]>>> a.reverse()>>> a[2, 3, 5, 1]
9.sort:原位置排序

>>> a[2, 3, 5, 1]>>> a.sort()>>> a[1, 2, 3, 5]
经常用到的方法就是以上的9种,其中append、extend、insert、remove、reverse、sort都是直接在原来的列表的基础上进行操作并没有返回值,但是原列表的值都已经并改变,在使用的时候需要注意这一特性。

元组方法

因为元组的值是不能修改的,所以它的操作比较简单,无非就是list等操作,不作赘述。

字符串方法

因为字符串从string中继承了很多方法,所以能够使用的方法还是比较丰富的。

1.find:查找子字符串,返回子串最左端索引,找不到则返回-1

>>> a='adcdefg'>>> a.find('cde')2>>> a.find('ce')-1
还可以在find中第二个和第三个参数加入可选的起点和结束点

2.join:用于在字符串中添加元素

>>> a='abc'>>> b='+'>>> b.join(a)'a+b+c'>>> c=['ab','cd','ef']>>> b.join(c)'ab+cd+ef'
如上所示,可以直接在字符串中添加也可以在字符串列表当中添加,产生的结果是不一样的。

3.lower:可以返回字符串的小写版

>>> a='ABCd'>>> print a.lower()abcd>>> a'ABCd'
值得注意的是,原字符串的值并没有改变,只是返回了一个新的字符串(印证了字符串的不可变性)

4.replace:将匹配项替换后返回新串

>>> a'ABCd'>>> a.replace('C','c')'ABcd'
5.split:join的逆方法

>>> '1+2+3+4'.split('+')['1', '2', '3', '4']
比较常用的方法就是这些了,当然还有很多没有列出的方法也会经常用到,有待以后的进一步学习。

0 0
原创粉丝点击