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.字符串使用 字符串是一种序列,素有标准的序列操作对字符串用样适用,字符串是不可以改变 格式化操作符,%,左侧是格式化字符串,右侧是被格式的值,可以是一个值.元组.字典 数值 ...
随机推荐
- Java常见设计模式学习(非原创)
文章大纲 一.策略模式二.观察者模式三.工厂模式四.单例模式五.其他模式六.设计模式总结七.参考文章 一.策略模式 现在假设我们有个"鸭子项目",首先我们用OOP(面向对象)的 ...
- Hadoop概念学习系列之Hadoop 生态系统
当下 Hadoop 已经成长为一个庞大的生态体系,只要和海量数据相关的领域,都有 Hadoop 的身影.下图是一个 Hadoop 生态系统的图谱,详细列举了在 Hadoop 这个生态系统中出现的各种数 ...
- 设置DataTable行属性
dt.Columns["ColumnName"].DataType=Type.GetType("System.bool");
- Java | 基础归纳 | 静态方法与实例方法的区别
静态方法和实例方法的区别主要体现在两个方面: 在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式.而实例方法只有后面这种方 ...
- [題解](單調隊列/水)luogu_P3088擠奶牛
d長度內區間最大值,單調隊列維護即可 由於需要滿足左右同時有2倍高度的牛才能更新答案,所以正反跑兩次 #include<bits/stdc++.h> using namespace std ...
- flask_之URL
URL篇 在分析路由匹配过程之前,我们先来看看 flask 中,构建这个路由规则的两种方法: 通过 @app.route() decorator 通过 app.add_url_rule,这个方法的签名 ...
- __next__,__iter__实现迭代器,斐波那契数列
迭代器__next__,__iter__ 基于__next__和__iter__方法实现的迭代器 class Foo: def __init__(self,n): self.n = n def __i ...
- Codeforces Round #497 (Div. 2) A. Romaji
Bryce1010模板 http://codeforces.com/contest/1008/problems #include <bits/stdc++.h> using namespa ...
- python shutil
#! /usr/bin/env python# -*- coding:utf-8 -*-# shutil 高级的文件.文件夹.压缩包处理模块import shutil #1.copyfileobj(源 ...
- html的meta总结
引子 之前的我的博客中对于meta有个介绍,例如:http://www.haorooms.com/post/liulanq_think_ie 浏览器安全性想到的这篇文章,中间介绍了meta下面IE的一 ...