列表、元组以及字符串
2016-07-26 11:29
309 查看
最近在开始学习python,看到了列表、元组和字符串这三种序列,觉得它们之间还是有一些需要区分的地方,所以总结一下:
在看到的代码之中,可以一眼就区分开这三种序列,列表是形如[1,2,3]这样的一种序列,它里面的元素可以是数字、字符、字符串(甚至是其他类型的序列,这是一些比较灵活的使用方式);而元组是形如(1,2,3)这样的序列;至于字符串就是形如'abcdef'。对于这三种序列,它们之间最明显的区别就是,列表是可变的而元组和字符串是不可变的,所以如果给后面两种序列进行索引赋值就会产生错误:
这三个序列都有着自己的方法:
列表方法:
1.append:用于列表末尾添加对象
2.count:用于统计某一个元素的个数
3.extend:append的升级版,可以在序列的末尾增加多个值
在添加值的时候,不能直接以多个值作为参数,而是应当将要添加的值写成列表的形式,其实与列表的连接比较像,但是,这个函数是直接改变原列表的值而不是构建新的列表。
4.index:索引的功能,返回第一个匹配项的位置
5.insert:插入对象到指定的位置
6.pop:移除最后一个元素并返回(栈)
8.reverse:反向存放
元组方法
因为元组的值是不能修改的,所以它的操作比较简单,无非就是list等操作,不作赘述。
字符串方法
因为字符串从string中继承了很多方法,所以能够使用的方法还是比较丰富的。
1.find:查找子字符串,返回子串最左端索引,找不到则返回-1
2.join:用于在字符串中添加元素
3.lower:可以返回字符串的小写版
4.replace:将匹配项替换后返回新串
在看到的代码之中,可以一眼就区分开这三种序列,列表是形如[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动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例
- Python 七步捉虫法