您的位置:首页 > 编程语言 > Python开发

列表、元组以及字符串

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

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

>>> a=(1,2,3)
>>> a[1]=3
Traceback (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']
比较常用的方法就是这些了,当然还有很多没有列出的方法也会经常用到,有待以后的进一步学习。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python