序列

序列包含:字符串,列表和元组

序列基本操作符

索引:seq[ind] 获得下标为ind 的元素

分片( [], [:], [::] ):seq[ind1:ind2] 获得下标从ind1 到ind2 间的元素集合

重复操作符( * ):seq * expr 序列重复expr 次

连接操作符( + ):sequence1 + sequence2,该表达式的结果是一个包含sequence1 和sequence2 的内容的新序列

判断成员资格:obj in/not in seq 判断obj 元素是否包含在seq 中,返回True或False

求长度:len()

最大值最小值:max() min()

关于索引:

sequence[index]

sequence 是序列的名字,index 是想要访问的元素对应的偏移量.偏移量可以是正值,范围从0 到偏移最大值(比序列长度少一),用len()函数(下一节会讲),可以得到序列长度,实际的范围是 0 <= inde <= len(sequece)-1 .另外,也可以使用负索引,范围是 -1 到序列的负长度,-len(sequence), -len(sequence) <= index <= -1.正负索引的区别在于正索引以序列的开始为起点,负索引以序列的结束为起点.

关于切片:

sequence[starting_index:ending_index]

通过这种方式我们可以得到从起始索引到结束索引(不包括结束索引对应的元素)之间的一"片"元素.起始索引和结束索引都是可选的,如果没有提供或者用None 作为索引值,切片操作会从序列的最开始处开始,或者直到序列的最末尾结束.用步长索引来进行扩展的切片操作序列的最后一个切片操作是扩展切片操作,它多出来的第三个索引值被用做步长参数。s[::-1] # 可以视作"翻转"操作

序列类型转换工厂函数

list(iter):把可迭代对象转换为列表

str(obj): 把obj 对象转换成字符串(对象的字符串表示法)

unicode(obj): 把对象转换成Unicode 字符串(使用默认编码)

basestring(): 抽象工厂函数,其作用仅仅是为str 和unicode 函数提供父类,所以不能被实例化,也不能被调用tuple(iter): 把一个可迭代对象转换成一个元组对象

字符串

特性:通过加引号(单引号,双引号,三引号)创建,不可变类型

格式

描述

%%

输出百分号标记

%c

字符及其ASCII码

%r

优先用repr()函数进行字符串转换

%s

优先用str()函数进行字符串转换

%d

有符号整数(十进制)

%u

无符号整数(十进制)

%o

无符号整数(八进制)

%x

无符号整数(十六进制)

%X

无符号整数(十六进制大写字符)

%e

浮点数字(科学计数法)

%E

浮点数字(科学计数法,用E代替e)

%f

浮点数字(用小数点符号)

%g

浮点数字(根据值的大小采用%e或%f)

%G

浮点数字(类似于%g)

%p

指针(用十六进制打印值的内存地址)

%n

存储输出字符的数量放进参数列表的下一个变量中

辅助符号

说明

*

定义宽度或者小数点精度

-

用做左对齐

+

在正数前面显示加号(+)

在正数前面显示空格

#

在八进制数前面显示零(0),在十六进制前面显示“0x”或者“0X”(取决于用的是“x”还是“X”)

0

显示的数字前面填充“0”而不是默认的空格

m.n

m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

注意:辅助符号要在百分号(%)和格式化符号之间。

辅助符号举例:

Num1 = 108

print("%#X" %Num1)

Num2= 234.567890

print("%.2f" %Num2)

输出:0X6C

234.57

原始字符串操作符( r/R )

Python中的原始字符串以r开头,使用原始字符串可以避免字符串中转义字符带来的问题。

例如写路径时 path = 'c:\noway',此时用 printpath,其结果为:

c:

oway

如果用原始字符串 path= r'c:\noway',则 printpath,其结果为:

c:\noway

列表

l  列表是序列对象,可包含任意的Python数据信息,如字符串、数字、列表、元组等

l  列表的数据是可变的,我们可通过对象方法对列表中的数据进行增加、修改、删除等操作

l  可以通过list(seq)函数把一个序列类型转换成一个列表

列表是由方括号[ ]来定义的,当然,你也可以用工厂方法list()来创建。

>>> aList = [123, 'abc', 4.56, ['inner', 'list'], 7-9j]>>> list('foo')

['f', 'o', 'o']

列表方法:

1.list.append(x),在list列表尾部追加单个对象x,使用多个参数会引起异常

2. list.count(x),返回对象x在list列表中出现的次数

3. list.extend(L),将L列表中的内容添加到list列表中,返回None

4. list.index(obj,i=0,j=len(list)):返回list[k]==obj的k值,并且k的范围在 i<=k

5. list.insert(i,x),在索引为i的元素前插入对象x,如list.insert(0,x)在第一项前插入对象,返回None

6. list.pop(x),删除列表中索引为x的表项,并返回该表项的值,若未指定索引,pop返回列表最后一项

7. list.remove(x),删除列表中匹配对象x的第一个元素,匹配元素时产生异常,返回None

8. list.reverse(),颠倒列表元素的顺序

9. list. sort([cmp[, key[, reverse]]]),对列表排序,返回none,bisect模块可用于排序列表项的添加和删除

序列类型函数

Len():对字符串来说len()返回字符串的长度,就是字符串包含的字符个数.对列表或者元组来说,它会像你想像的那样返回列表或者元组的元素个数,容器里面的每个对象被作为一个项来处理.

Max()and min()

Sorted() and reversed():排序

Enumerate() and zip():

Sum():求和

List() and tuple():list()函数和tuple()函数接受可迭代对象(比如另一个序列)作为参数,并通过浅拷贝数据来创建一个新的列表或者元组它们用于在两种类型之间进行转换,比如你需要把一个已有的元组转成列表类型的(然后你就可以修改它的元素了),或者相反.

元组

1、相当于不可变的列表,不能进行更新内容和顺序

2、当处理一组对象时,这个组默认是元组类型

3、所有的多对象,逗号分隔的,没有明确用符号定义的这些都默认为元组类型

创建元组:

>>>atuple = (‘1’,’b’,’a’)>>> tuple('bar')

('b', 'a', 'r')>>>atuple = (‘1’,) #创建单个元素的元组,要加个“,”号

关于元组操作:

1.   无法向元组添加元素。元组没有  append() 或 extend() 方法。

2.   不能从元组中删除元素。元组没有 remove() 或 pop()  方法。

3.   可以 在元组中查找元素,由于该操作不改变元组。

4.   还可以使用 in 运算符检查某元素是否存在于元组中。

更新元组

跟数字和字符串一样,元组也是不可变类型,就是说你不能更新或者改变元组的元素,前面,我们是通过现有字符串的片段再构造一个新字符串的方式解决的,对元组同样需要这样。

aTuple = (123, 'abc', 4.56, ['inner', 'tuple'], 7-9j)

aTuple= aTuple[0], aTuple[1], aTuple[-1]print(aTuple)

输出:

(123, 'abc', (7-9j))

tup1= (12, 34.56)

tup2= ('abc', 'xyz')

tup3= tup1 +tup2print(tup3)

输出:

(12, 34.56, 'abc', 'xyz')

那么元组有什么好处呢?

•   元组的速度比列表更快。如果定义了一系列常量值,而所需做的仅是对它进行遍历,那么请使用元组替代列表。

•   对不需要改变的数据进行“ 写保护” 将使得代码更加安全。使用元组替代列表就像是有一条隐含的 assert 语句显示该数据是常量,特别的想法(及特别的功能)必须重写。(??)

•   一些元组可用作字典键(特别是包含字符串、数值和其它元组这样的不可变数据的元组)。列表永远不能当做字典键使用,因为列表不是不可变的。

•   元组作为很多内建函数和方法的返回值存在。

关于列表和列表,元组和元组之间的比较:

1. 对两个列表的元素进行比较.

2. 如果比较的元素是同类型的,则比较其值,返回结果.

3. 如果两个元素不是同一种类型,则检查它们是否是数字.

a. 如果是数字,执行必要的数字强制类型转换,然后比较.

b. 如果有一方的元素是数字,则另一方的元素"大"(数字是"最小的")

c. 否则,通过类型名字的字母顺序进行比较.

4. 如果有一个列表首先到达末尾,则另一个长一点的列表"大".

5. 如果我们用尽了两个列表的元素而且所有元素都是相等的,那么结果就是个平局,就是说返回一个0.

python序列符号_初识Python(4)__Python序列相关推荐

  1. 用python画竹子_初识Python

    一:编程语言的分类 (1)机器语言 机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合. (2)汇编语言 汇编语言采用的是英文缩写,标识符更容易识别和记忆,它同样需要编程者将每一步 ...

  2. python实数符号_使用python将无符号int转换为有符号浮点

    好吧,这已经困扰我一段时间了!在 我有一个三公制电池监视器,它串行输出数据到一个Arduino,在那里我转换和缩放输出通过Modbus TCP发送到我的Raspberry Pi,然后在那里除垢并添加到 ...

  3. python个人总结_初识Python

    Program01 基本的输出 作为一种语言的学习,他的仪式感很重要 print("Hello World!") 这就是python3里面的 Hello World! 打印输出 P ...

  4. python程序保存_初识python 文件读取 保存

    上一章最后一题的答案: infors.sort(key=lambda x:x['age']) print(infors) --->[{'name': 'laowang', 'age': 23}, ...

  5. 初识python教学反思_初识Python

    引子 计算机编程语言如同我们的自然语言一样,有其一套规范的语法,我们学习编程语言不过是学习它的那一套规则罢了. 语言的发展史 机器语言 --> 汇编语言 --> C语言(写程序时需要操作内 ...

  6. python自学第8天字典_孤荷凌寒自学python第十一天初识Python的字典类

    孤荷凌寒自学python第十一天初识Python的字典类 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) Python的字典其实是一张二维对照表 下面举例说明: 键名Key 姓名 性别 身高 ...

  7. python输入姓名 性别身高_孤荷凌寒自学python第十一天初识Python的字典类

    孤荷凌寒自学python第十一天初识Python的字典类 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) Python的字典其实是一张二维对照表 下面举例说明: 键名Key 姓名 性别 身高 ...

  8. 孤荷凌寒自学python第三十八天初识python的线程控制

    孤荷凌寒自学python第三十八天初识python的线程控制 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.线程 在操作系统中存在着很多的可执行的应用程序,每个应用程序启动后,就可以看着 ...

  9. python 时间序列预测_使用Python进行动手时间序列预测

    python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...

最新文章

  1. 云端一体全栈解决方案
  2. mysql等待事件类型_Oracle中常见的33个等待事件小结
  3. CE6.0 下获得 SD 卡序列号的方法
  4. Py之pydotplus:pydotplus的简介、安装、使用方法之详细攻略
  5. Zabbix监控多个JVM进程
  6. LeetCode 237. 删除链表中的节点(思维)
  7. 小汤学编程之JAVA番外篇——Properties工具类
  8. aspose条件格式无法读取_分析 Pandas 源码,解决读取 Excel 报错问题
  9. CentOS7.X中使用yum安装nginx的方法
  10. 阿里云使用js 实现OSS图片上传、获取OSS图片列表、获取图片外网访问地址(读写权限私有、读写权限公共);...
  11. Java中J.U.C扩展组件之ForkJoinTask和ForkJoinPool
  12. scala上界_Scala方差,上界和下界
  13. 梯度下降-从0开始一行代码一解释
  14. 数字IC设计学习笔记_专业书单整理
  15. 串口转以太网产品选型指南
  16. 【数据清理与特征工程】2-数据清理
  17. 【室内园艺】——栀子花
  18. Nginx二级域名代理二级目录
  19. java sequencer_UVM学习笔记--sequence和sequencer(转)
  20. 互联网财富管理平台应该怎么做?(上篇)

热门文章

  1. uboot移植——使用三星官方的uboot进行移植
  2. 08.Numpy数组迭代
  3. lightoj1259 线性筛的另一种写法 v变成bool标记数组
  4. Spring Boot之自定义属性
  5. ViewPager+Fragment,Fragment会预加载的问题
  6. GridView 添加分害线
  7. sql 中N'的作用
  8. CMakeList.txt中设置一个可变的变量的值(bool)
  9. PostgreSQL的核心架构
  10. 分号是不是c语言的一部分,问什么C程序里总是提示缺少分号;,而明明有分号?...