Python学习笔记2(序列)
元组:不可变序列
元组与列表一样,也是一种序列,唯一不同是元组不能修改。
创建元组很简单:用逗号将一些值分开,就会自动创建元组。创建只有一个值的元组的时候要在该值后面加上一个逗号。
tuple函数
该函数的功能与list函数基本上是一样的:以一个序列作为参数并把它转换为元组。
如果参数就是元组,那么原值返回。元组的分片还是元组。元组的操作只有赋值和访问两种。元组用圆括号括起来。
两种列表不能代替元组的情况:
- 元组可以在映射(和集合的成员)中当作键使用——而列表则不行。
- 元组作为很多内建函数和方法的返回值存在,所以经常会对元组进行操作。
一般来说,列表可能更满足对序列的所有需求。
总结
- 序列。序列是一种数据结构,它包含的元素都进行了编号(从0开始)。典型的序列包括列表、字符串、元组(另外还有Unicode字符串、buffer对象、xrange对象。)其中,列表是可变的(可以进行修改),而元组和字符串是不可变的(不可修改,一旦创建了就是固定的)。通过分片操作可以访问序列的一部分,其中分片需要两个索引号来指明分片的起始和终止,(其中起始索引号在分片范围内,而终止索引号不在分片范围之内。)要想改变列表,则要对相应的位置赋值或利用赋值语句重新书写整个分片。
- 成员资格。in操作可以判断一个元素是否属于该序列,也可以用来判断一个字符串是否是一个字符串的子序列。
- 方法。一些内建类型(比如列表和字符串,元组不在其中)具有很多有用的方法。这些方法类似于函数,不过他们与特定值联系密切。方法是面向对象编程中的一个重要的概念。
字符串
字符串是序列的一种,可以利用序列的索引和分片来对字符串访问和赋值。但是字符串是不可改变的。
基本字符串的操作
所有标准的序列操作都可以适用于字符串,比如索引、分片、乘法、加法、判断成员资格、求序列长度、找序列最大最小值等。但是要记住字符串不可修改。
字符串格式化
字符串格式化利用字符串格式化操作符%来完成。
字符串方法
find
find方法可以在一个较长的字符串中查找子字符串,它返回子串最左端所在位置的索引值,如果没有找到就返回-1.
>>> title='monty is a beatiful girl!'
>>> title.fin('girl')
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
title.fin('girl')
AttributeError: 'str' object has no attribute 'fin'
>>> title.find('girl')
20
注意,find返回的并不是布尔值,如果返回了0,则表示在索引值为0出找到了子序列。并且find还可以提供可选择的搜索范围(起点和终点值)。注意有起点和终点指定范围包含起点不包含终点,这是Python的惯例。
join
join是split方法的逆方法。用来连接序列中的元素。
>>> dirs='','user','access','ssuccess'
>>> '/'.join(dirs)
'/user/access/ssuccess'
lower
返回字符串的小写字母版。
>>> name='Gumby'
>>> names=['gunby','smith']
>>> if name.lower()in names:print('Found it')
replace
replace返回某字符串的所有匹配项均被替代之后的字符串。
>>> names='you are so clever'
>>> names.replace('so','very')
'you are very clever'
split
是join的逆方法,用来将字符串分割成序列。
>>> '1+2+3+4+5+6'.split('+')
['1', '2', '3', '4', '5', '6']
>>> '1 2 3 4 5 6 7 8 9 '.split()
['1', '2', '3', '4', '5', '6', '7', '8', '9']
如果不提供任何分隔符,程序会把所有空格作为分隔符(空格、制表符、换行等)
strip
strip返回去除两侧空格(不包括内部)的字符串。也可以指定需要去除的字符,将他们类为参数来去除。
>>> '****name*is****lalalal******!!!!!!'.strip("*!")
'name*is****lalalal'
只能去除两侧的字符。
translate
translate和replace方法一样,可以替代字符串中的某些部分,但是和前者不同的是,translate只处理单个字符。它的优势在于同时可以处理多个替代。在使用translate之前,需要制作一张转换表。转换表中是以某字符替代某字符的对应关系。因为这个表多大256项,因此最好使用string模块中的maketrans函数。maketrans接受两个参数,其实是两个等长的字符串,两个字符串中对应字符互相替换。
小结
字符串方法很多,有的较常使用,有些是用的很少。
Python学习笔记2(序列)的更多相关文章
- python学习笔记九——序列
4.4 序列 序列是具有索引和切片能力的集合.元组.列表和字符串具有通过索引访问某个具体的值,或通过切片返回一段切片的能力,因此元组.列表和字符串都属于序列.序列索引功能演示: tuple=(&quo ...
- Python学习笔记:序列构成的数组
列表推导是一种构建列表(list)的快捷方式 #列表推导 symbols = '!@#$%' codes = [ord(symbol) for symbol in symbols] #ord()Pyt ...
- Python学习笔记015——序列(字节数组 bytearray)
1 序列 常见的序列有:list tuple str bytes(字节串) bytearray 2 字节数组bytearray 可变的字节序列,相当于bytes的可变版本. 3 创建函数by ...
- python学习笔记(一)元组,序列,字典
python学习笔记(一)元组,序列,字典
- Python学习笔记(十四)
Python学习笔记(十四): Json and Pickle模块 shelve模块 1. Json and Pickle模块 之前我们学习过用eval内置方法可以将一个字符串转成python对象,不 ...
- 【python学习笔记】9.魔法方法、属性和迭代器
[python学习笔记]9.魔法方法.属性和迭代器 魔法方法:xx, 收尾各有两个下划线的方法 __init__(self): 构造方法,创建对象时候自动执行,可以为其增加参数, 父类构造方法不会被自 ...
- 【python学习笔记】6.抽象
[python学习笔记]6.抽象 创建函数: 使用def语句定义函数,不用声明参数类型,和返回值类型 def function_name(param1, param2): 'this is docum ...
- 【python学习笔记】5.条件、循环和其他语句
[python学习笔记]5.条件.循环和其他语句 print: 用来打印表达式,不管是字符串还是其他类型,都输出以字符串输出:可以通过逗号分隔输出多个表达式 import: 导入模块 impo ...
- 【python学习笔记】3.字符串使用
[python学习笔记]3.字符串使用 字符串是一种序列,素有标准的序列操作对字符串用样适用,字符串是不可以改变 格式化操作符,%,左侧是格式化字符串,右侧是被格式的值,可以是一个值.元组.字典 数值 ...
随机推荐
- Ionic start 创建项目报错
Installing npm packages... Error with start undefined Error Initializing app: There was an error wit ...
- ADO学途 five day 连接数据库
用一个程序的目的就是为了方便对数据进行操作,没有数据的支持,程 序就成了一个空壳子.一般我们常用的数据库有三种mysql, SQL server, Oracle. C#中常用的就是SQL server ...
- DB2 - 编目的解释
编目(Catalog),是在本地或远程建立客户端到服务器的数据库连接的过程.其目的在于获取编目信息,即生成用来访问数据库的目录.系统数据库目录包含一个列表和指针,通过目录可以使 DB2 能够找到已知的 ...
- C 语言实例 - 计算平均值
C 语言实例 - 计算平均值 C 语言实例 C 语言实例 使用数组来计算几个数的平均值. 实例 #include <stdio.h> int main() { int n, i; ], s ...
- POJ-1181-食物链
链接:https://vjudge.net/problem/POJ-1182 题意: 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形.A吃B, B吃C,C吃A. 现有N个动物,以1 ...
- R 语言中 data table 的相关,内存高效的 增量式 data frame
面对的是这样一个问题,不断读入一行一行数据,append到data frame上,如果用dataframe, rbind() ,可以发现数据大的时候效率明显变低. 原因是 每次bind 都是一次重新 ...
- js实现接口的几种方式
Javascript模仿接口可以有三种方式:1.注释法 2.检查属性法 3.鸭式辨形法 1.注释法:此方法属于程序文档范畴,对接口的继承实现完全依靠程序员自觉 /* interface People{ ...
- H5网站加载速度优化总结
1. 在代码文件结构 尽量优化的同时,能力再强已经到极限了,但你服务器辣鸡,搭配不当,你代码优化上天 也是徒劳啊. 2.你不怎么优化, 服务器 各种技术配置到位的话, now你也看到了,我一个系统首页 ...
- 安装ubuntu虚拟环境
一. 安装 1. 准备: 1). Oracle VM VirtualBox https://www.virtualbox.org/ 2). Ubuntu 18.04.2 LTS https://ubu ...
- vi 搜索
/ 向下搜索 ? 向上搜索 n 重复前一个搜索 N 反向重复前一个搜索