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.字符串使用 字符串是一种序列,素有标准的序列操作对字符串用样适用,字符串是不可以改变 格式化操作符,%,左侧是格式化字符串,右侧是被格式的值,可以是一个值.元组.字典 数值 ...
随机推荐
- 字符串匹配,KMP算法
KMP的详解见:https://segmentfault.com/a/1190000008575379 主要难点在于Next数组的理解,KMP是不需要回溯的匹配算法. #include<iost ...
- C# 基础之类与结构体的区别
1.语法上的区别是: 定义类使用关键字class,定义结构体用关键字struct 2.结构体中不可对声明字段进行初始化,但类可以 3. 类:如果没有为类显示的定义一个构造函数,c#编译器会自动生成一个 ...
- Virtual Judge使用指南
https://cn.vjudge.net/ Virtual Judge并不是常规的Online Judge平台,他通过爬取其他OJ的题目,让我们可以直接在VJ上查找并提交各种OJ的题目,然后将我们的 ...
- 洛谷 P2623 物品选取
https://www.luogu.org/problemnew/show/P2623 https://www.luogu.org/blog/test-1/solution-p2623 重点就是甲类物 ...
- re 模块的重新整理
RE模块 import re 的常用操作 查找 1. findall : ret = re.findall('\d+'.'sjkhk172按实际花费928') #正则表达式,待匹配的字符串,flag ...
- 利用HttpClient4访问网页
一.HttpClient介绍 虽然在 JDK 的 java.net 包中已经提供了访问 HTTP 协议的基本功能,但是它没有提供足够的灵活性和其他应用程序需要的功能.HttpClient 是 Apac ...
- hdu4553约会安排(线段树区间合并)
链接 poj3667的加强版 当时的题解 这里只不过对于女神需要另开算,DS的占用的时间不加在女神身上,女神的时间都要加,清空的时候也都要算. #include <iostream> #i ...
- BeanUtils 工具类
一.BeanUtils 概述 BeanUtils 是阿帕奇提供的一套专门用于将一些数据封装到java对象中的工具类; 名词:javaBean:特定格式的java类称为java ...
- spring @RequestBody 和 @RequestParams 同时使用
@RequestBody 和 @RequestParams 是可以同时使用的. @RequestBody 接受的数据类型是 content-type:"application/json&qu ...
- Struts2标签<s:checkboxlist>回显问题
Struts2 checkboxlist回显问题中,说明两种方式,第一种方式很普遍,第二种则是个人根据现有资源加上尝试得来的成果,第二种主要是为个人笔记(其中相关知识点不一一介绍). 一.普通方法: ...