序列

序类是一个集合概念, Pthon包括六种内建序列: 列表, 元组, 字符串, Unicode字符串, buffer对象和xrange对象. 其中, 我们最长用的要数前三个.

通用序列操作

1. 索引(indexing)

序列的所有元素都是有编号的(从0开始...), 这些元素可以通过编号访问, 如:

>>> greeting = 'Hello'

>>> greeting[0]

'H'

使用负数索引(从-1开始...)是从右边开始的:

>>> greeting[-1]

'o'

若函数调用返回一个序列, 可以直接对返回结果进行索引:

>>> fourth = raw_input("Year: ")[3]

Year: 2014

'4'

2. 分片(sliceing)

使用俩个索引来访问一定范围内的元素:

>>> tag = 'Python web site'

>>> tag[9:30]

'www.python.org'

>>> tag[32, -4]

'Python web site'

一些技巧:

>>> numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

访问最后三个元素只需要空一个索引:

>>> numbers[-3:]

[8, 9, 10]

同样适用与访问前三个:

>>> numbers[:3}

[1, 2, 3]

若要复制整个序列, 可使用numbers[:]

改变步长(step length)

分片时默认的步长是1, 我们可以改变步长:

>>> numbers[0:10:2]

[1, 3, 5, 7, 9]

3. 加法(adding)

通过加号进行序列相加:

>>> [1, 2, 3] + [4, 5, 6]

[1, 2, 3, 4, 5, 6]

>>> 'Hello, ' + 'world!'

'Hello, world'

相同类型的序列才能相加!!!

4. 乘法(multiplying)

用数字乘以一个序列会产生新的序列:

>>> 'python' * 3

>>> 'pythonpythonpython'

>>> [42] * 5

[42, 42, 42, 42, 42]

5. 成员资格

使用in运算符检查一个值是否在序列中, 在,返回True, 不在, 返回False.

>>> name = 'python'

>>> 'o' in name

True

>>> 'x' in name

False

>>> 'py' in name

True

6.长度, 最大值和最小值

内建函数len, max, min可用于求序列包含的元素个数, 最大值, 最小值.

>>> lst = [1, 2, 3]

>>> len(lst)

3

>>> max(lst)

3

>>> min(lst)

1

列表(list)

列表是Python中一个非常强大的内建类型, 列表元素写在[ ]中, 下面是一个简单的类表:

colors = ['red', 'blue', 'green']print colors[0] ## red

print colors[2] ## green

print len(colors) ## 3

=赋值运算使俩个变量在内存中指向同一个列表:

b = colors ## Does not copy the list

list函数

可以根据字符串创建列表

>>> list('Hello')

['H', 'e', 'l', 'l', 'o']

None, 空列表与初始化

空列表:[ ]

Python中有一个内建值Node: 表示'这里上面也没有'

如果想让一个列表占用10个元素空间, 可以这样: [None] * 10,

基本列表操作

1.元素赋值

>>> num = [1, 2, 3]

>>> num[1] = 10

>>> num

[1, 10, 3]

2.删除元素

使用del语句实现删除:

>>> names = ['Alice', 'Bob', 'Cindy']

>>> del names[1]

>>> names

['Alice', 'Cindy']

3. 分片赋值

基本使用:

>>> name = list('Perl')

>>> name

['P', 'e', 'r', 'l']

>>> name[2:] = list('ar')

name

['P', 'e', 'a', 'r']

可以使用与原序列不等长的序列将分片替换:

>>> name = list('Perl')

>>> name[1:] = list('ython')

>>> name

[''P, 'y', 't', 'h', 'o', 'n']

可以在不需要替换的情况下插入新元素:

>>> numbers = [1, 5]

>>> numbers[1:1] = [2, 3, 4]

>>> numbers

[1, 2, 3, 4, 5]

这里实质上是替换了空白, 可以将这个思路反过来, 实现删除:

>>> numbers = [1, 2, 3, 4, 5]

>>> numbers[1, 4] = [ ]

>>> numbers

[1, 5]

列表方法

1.append

在列表末追加元素: list.append(elem)

2.count

统计某个元素在列表中出现的次数: list.count(elem)

3.extend

在列表末尾一次性追加另一个列表的多个值, 也就是说可以用新列表拓展原有的: list1.extend(list2)

4.index

找除某个值在列表中第一次出现的索引位置: list.index(elem), 如果这个值不存在, 会引发异常

5.insert

将元素插入到列表的第n个位置之后: list.insert(n, elem), n是从1开是的.

6.pop

移除列表的一个元素(默认最后一个), 并返回它的值: list.pop() 或指定位置, list.pop(n)

7.remove

移除某个值在列表中的第一个匹配项: list.remove(elem)

8.reverse

反向存放列表中的元素: list.reverse()

9.sort

在原位置对列表进行排序(默认升序, 原位置意味着改变列表): list.sort()

10.自定义排序

元组(tuple)

元组的特点是不可改变. 元组一般是用圆括号括起来的.

用逗号分隔一些值创建元组:

>>> 1, 2, 3

(1, 2, 3)

空元组

>>> ()

()

一个值的元组

>>> 42,

(42,)

逗号不可丢.

tuple函数

以一个序列作为参数, 并把它转换成元组, 如果参数就是元组, 原样返回,例:

>>> tuple([1, 2, 3])

(1, 2, 3)

>>> tuple 'abc'

('a', 'b', 'c')

元组存在的意义

1. 元组可以在映射中充当键(key)值---列表则不行

2. 元组可以作为很多内建函数和方法的返回值存在

字符串(string)

格式化

在%左侧放置一个字符串, 右侧放置希望个格式化的值.

>>> format = "Hello, %s, %s enough for ya?"

>>> values = ('world', 'Hot')

>>> print format % values

Hello, world, Hot enough for ya?

注: 如果格式化串中包含%, 使用%%转义.

其他:

-: 表示左对齐,

+: 表示不管正数还是负数, 都显示符号

空格:不足位以空格填充

0: 不足位以0填充

字符串方法:

1.find

在一个较长的字符串中寻找子串, 返回字串所在位置的最左端索引, 未找到则返回-1: string1.find(string2)

2.join

可用特定字符连接字符串列表, 返回字符串, 是split方法的逆运用.

>>> lst = ['1', '2', '3']  # 不能是[1, 2, 3]

>>> lst.join('+')

'1+2+3'

3.lower(upper)

将字符串中的所有大写(小写)字母转换为小写(大写)字母: string.lower() string.upper()

4.replace

将字符串中所有的匹配串替换:

>>> 'This is a test'.replace('is', 'xxx')

'Thxxx xxx a test'

5.split

分割字符串, 是join的逆运用:

>>> '/usr/bin/python'.split('/')

[' ', 'usr', 'bin', 'python']

6.strip

去除字符串俩侧的空格或制表符(不包括中间的):

>>> '           Hello world!          '.strip()

'Hello world!'

7.tanslate

与replace类似, 可以替换字符串中的某些部分, 不同的是, translate只处理单个字符

8.maketrans

接受俩个参数: 俩个等长的字符串, 表示将第一个字符串中的每个字符都用第二个字符串中相同位置的字符替换.

>>> from string import maketrans

>>> table = maketrans('cs', 'kz')

>>> 'this is an incredible test'.translate(table)

>>> 'thiz iz inkredible tezt'

tanslate的第二个参数是可选的, 原来指定需要删除的字符:

>>> 'this is an incredible test'.translate(table, ' ')

>>> 'thizizinkredibletezt'

python实验二序列_python 学习笔记 二 序列, 列表, 元组, 字符串相关推荐

  1. 二维码学习笔记(二) | 数据分析与数据编码

    唠唠闲话 二维码笔记系列(原文地址): 『二维码学习笔记(一) | 二维码概述』 『二维码学习笔记(二) | 数据分析与数据编码』 『二维码学习笔记(三) | 纠错编码』 『二维码学习笔记(四) | ...

  2. [转载] python numpy 子数组_Python学习笔记3:Numpy入门

    参考链接: Python中的numpy.logaddexp2 参考<Python:数据科学手册>一书,仅作个人学习及记录使用,若有侵权,请联系后台删除. 1 理解Python中的数据类型 ...

  3. python编辑器文字放大_python学习笔记000

    写在最前面 其实想学习编程很久了,以前也陆陆续续学习过一段时间的编程,但总是半途而废,经过我长达三秒钟的思考,总结出以下两个方面的原因: 1.没有学习的压力.因为我不是程序员,编程不是我吃饭的家伙,会 ...

  4. python 异步加载_Python学习笔记4——爬取异步加载数据

    一.什么是异步加载? 在之前的学习笔记中,爬取的网页是需要手动翻页的网址,但是一些网站是通过自动加载翻页的,如knewone网页.浏览knewone的官网就能发现,当下拉到网页最下端时,网站会自动加载 ...

  5. python用户界面导入图片_python学习笔记之11:图像用户界面

    这里会介绍如何创建python程序的图像用户界面(GUI),也就是那些带有按钮和文本框的窗口等.目前支持python的所谓"GUI工具包"的有很多,本文简要介绍最成熟的跨平台pyt ...

  6. python 坐标轴 单位刻度_Python学习笔记(matplotlib篇)--坐标轴刻度

    python学习笔记--坐标轴刻度 所用的库及环境: ide:pycharm python环境:python3.7 matplotlib:   matplotlib 1.11 numpy:  nump ...

  7. python的基本数据结构_Python学习笔记——基本数据结构

    列表list List是python的一个内置动态数组对象,它的基本使用方式如下: shoplist = ['apple', 'mango', 'carrot', 'banana'] print 'I ...

  8. python的基本数据结构_python学习笔记-基本数据结构

    Python 学习笔记-1 写在最前面,因为组内小伙伴要走,生信团队由原来的7个人,慢慢的变的只有我一个人了,需要紧急突击下python,因为有python的流程要交接维护 python 基本情况 代 ...

  9. python版本升级后编译_python学习笔记(7)--python版本升级

    本节点标题 1.python升级 1.1.查看原版本 1.2.下载新版本的python 1.3.解压缩 以及编译 1.4.覆盖原来的python链接 1.5.修复yum =============== ...

最新文章

  1. 2021年大数据ELK(十一):Elasticsearch架构原理
  2. 创新时代的管理:《创新赢天下》
  3. Bzoj2037: [Sdoi2008]Sue的小球
  4. restful api php,RestfulAPI · ThinkPHP6.0接口开发与应用及uniapp快速入门(更新完毕) · 看云...
  5. NLP《词汇表示方法(一)one-hot向量表示》
  6. tomcat最大连接数_SpringBoot内嵌Tomcat自定义配置用法
  7. docker cp :用于容器与主机之间的数据拷贝
  8. 7.Appium 安卓自动化(Package与Activity)
  9. 火车图 、jackson图
  10. SPOOLing技术的再思考
  11. qt文件怎么设置全局变量_QT编程之——使用全局变量
  12. jenkins连接Linux
  13. 利用ev3dev编程
  14. 【ImageNet】数据集1000个类的名称,中文名称,ILSVRC2012数据集
  15. 梦幻西游转区后没显示原服务器,梦幻西游:你不知道的转区小细节,刷区时间不只是周二上午的10点...
  16. Kubernetes生产实践系列之二十二:Service Mesh之在Kubernetes部署Linkerd2进行service mesh
  17. python 期货现货差价监测_现货价格和期货价格的关系怎么看?
  18. photon 服务器操作系统,[专栏作家] Photon Server之Photon Control服务器控制界面
  19. 深度学习之 imgaug (图像增强)学习笔记
  20. Java语言程序设计与数据结构(基础篇)梁勇第九章 *9.3

热门文章

  1. Android中Activity的四种启动方式
  2. Mysql常用命令详解
  3. 【转】 vi常用操作
  4. ESP8266编译脚本之五
  5. 二十五、求单点的最短路径
  6. mysql 使用中 修复 blog_Java My-Blog之mysql容器重复初始化严重bug修复过程
  7. Bitcoin 中的挖矿算法(3) 挖矿算法代码说明
  8. 目标和(01背包应用)
  9. 关于AttributeError: type object ‘XXX‘ has no attribute ‘XXX‘的问题
  10. 可信平台模块(TPM)概念介绍