python序列符号_初识Python(4)__Python序列

序列

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

序列基本操作符

索引: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.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/472716.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BigTable的开源实现:HBase数据库

learn from 从0开始学大数据&#xff08;极客时间&#xff09; 文章目录1. 两种数据库2. HBase 可伸缩架构3. HBase 可扩展数据模型4. HBase高性能存储1. 两种数据库 关系数据库&#xff08;RDBMS&#xff09;缺点&#xff1a; 糟糕的 海量数据处理能力、僵硬的设计约束 从 …

java toast_Android中Toast的用法简介

Toast是Android中用来显示显示信息的一种机制&#xff0c;和Dialog不一样的是&#xff0c;Toast是没有焦点的&#xff0c;而且Toast显示的时间有限&#xff0c;过一定的时间就会自动消失。下面用一个实例来看看如何使用Toast。1.默认效果代码Toast.makeText(getApplicationCont…

erlang lists

http://blog.csdn.net/dp0304/article/details/7590233 一&#xff0c;带函数Pred1, all(Pred, List) -> boolean()如果List中的每个元素作为Pred函数的参数执行&#xff0c;结果都返回true&#xff0c;那么all函数返回true&#xff0c;否则返回false 例子&#xff1a; list…

流式计算的代表:Storm、Flink、Spark Streaming

learn from 从0开始学大数据&#xff08;极客时间&#xff09; 文章目录1. Storm2. Spark Streaming3. Flink对存储在磁盘上的数据进行大规模计算处理&#xff0c;大数据批处理对实时产生的大规模数据进行处理&#xff0c;大数据流计算 1. Storm 一些系统 业务逻辑 和 数据处…

windows7正版验证_Windows7 寿终正寝:那些一并消逝的软件你知多少?

IT服务圈儿有温度、有态度的IT自媒体平台来源&#xff1a;太平洋电脑网本月&#xff0c;一代经典操作系统微软Windows 7正式迎来了生命周期的完结。微软宣布&#xff0c;此后将不再为Win7提供任何形式的更新&#xff0c;包括安全更新、稳定性更新和功能更新&#xff1b;而仍在使…

python3 整除_python如何整除

Python 的除法运算符有两个&#xff1a;“/”表示普通除法&#xff0c;使用它除出来的结果与平常数学计算的结果是相同的(即除不尽时&#xff0c;会产生小数部分)&#xff1b;而“//”表示整除&#xff0c;使用它除出来的结果只有整数部分&#xff0c;小数部分将会被舍弃。记住…

java implements t_Java泛型——為什么“擴展T”允許而不是“實現T”?

I wonder if there is a special reason in Java for using always "extends" rather than "implements" for defining bounds of typeparameters.我想知道在Java中是否有一個特殊的原因&#xff0c;因為使用總是“擴展”而不是“實現”來定義類型參數的界…

php调用webservice报错Class 'SoapClient' not found

php调用webservice报错Class SoapClient not found 原文:php调用webservice报错Class SoapClient not found php在调用webservice时&#xff0c;报告如下类似错误&#xff1a; ( ! ) Fatal error: Class SoapClient not found in E:/WebSrv/CI/system/libraries/WebService.php…

stotybord如何添加子视图_Revit软件技巧合集(建筑构件、视图处理、建筑表现、高级技巧)...

Revit软件技巧合集164套(建筑构件、视图处理、建筑表现、高级技巧)BIM技术在我国建筑行业受到了越来越多的关注&#xff0c;也得到了快速地发展。BIM应用软件也如雨后春笋般的涌现&#xff0c;随着时间的推移&#xff0c;revit在BIM应用中将成为设计利器&#xff0c;而在工程施…

ZooKeeper 保证数据一致性

learn from 从0开始学大数据&#xff08;极客时间&#xff09; 文章目录1. 分布式一致性原理2. Paxos 算法与 ZooKeeper 架构1. 分布式一致性原理 CAP 原理认为&#xff0c;一个提供数据服务的分布式系统 无法同时满足 数据一致性&#xff08;Consistency&#xff09;、可用性…

python使方法执行10次_Python提升程序性能的七个手段

1. 使用局部变量尽量使用局部变量代替全局变量: 便于维护, 也可以避免不必要的资源浪费使用局部变量替换模块名字空间的变量, 例如: ls os.linesep. 一方面给可以提高程序性能, 局部变量查找速度更快; 另一方面可以采用简短标识符代替冗长的模块变量, 提高可读性.2. 减少函数调…

java sftp mget_总结三种Shell脚本编程中避免SFTP输入密码的方法

最近编程中用到sftp上传文件&#xff0c;且需要用crontab预设定时上传事件。而sftp不同于ftp&#xff0c;没有提供选项如 -i 可以将密码直接编码进程序。使用sftp指令&#xff0c;会自动请求用户输入密码。总结一下可以避免sftp输入密码的三种方式&#xff1a;1. lftp方式LFTP是…

ad域不去用frs_Windows Server 2008搭建AD域控服务器 - 小王同学!

AD域安装过程安装DNS服务器一路下一步这里选安装到这里DNS服务器安装成功&#xff0c;可以在主页面看到我们安装的角色安装DNS服务器后我们需要重启服务器安装AD域服务新增AD域服务角色一路下一步——安装即可两条安装成功提示&#xff0c;重启服务器角色中选择AD域服务&#x…

IE下及标准浏览器下的图片旋转(二)—— Canvas(2)

文章过长&#xff0c;一篇无法保存 IE下及标准浏览器下的图片旋转&#xff08;二&#xff09;—— Canvas&#xff08;1&#xff09; 同样&#xff0c;作为最后&#xff0c;我们使用使用jquery也为canvas写个旋转demo&#xff1a; javascript&#xff1a; $(function () { …

大数据技术 思维导图

learn from 从0开始学大数据&#xff08;极客时间&#xff09;

python 管理windows客户端_在远程windows客户端上执行python脚本

我正在使用paramiko在远程windows服务器上执行命令。我能够执行dir之类的命令并提取输出&#xff0c;但是执行python脚本似乎失败了。不会引发错误消息。在下面是我的代码片段&#xff1a;def ssh_connect(ip,user,pwd):ssh paramiko.SSHClient()ssh.set_missing_host_key_pol…

日期范围 java_JavaJoDA时间-实现日期范围迭代器

这是一些让你开始的东西。你可能会想一想到底是要包容性还是排他性,等等。import org.joda.time.*;import java.util.*;class LocalDateRange implements Iterable{private final LocalDate start;private final LocalDate end;public LocalDateRange(LocalDate start,LocalDat…

win10win键无反应_台式电脑开机主机没反应怎么办 电脑开机主机没反应解决【详解】...

按了开机按钮后我的台式电脑主机还是没反应&#xff0c;怎么办呢?下面由小编给你做出详细的台式电脑开机主机没反应解方式介绍。(此文主要针对台式电脑做介绍)台式电脑开机主机没反应解方式一&#xff1a;拔掉电源线 然后重复的按开机键5-10下 进行放静电操作 然后再插上电源线…

hadoop 单机伪分布式安装步骤

文章目录1. 安装 Java2. 配置SSH无密码登录3. 下载 hadoop4. 配置环境变量5. 报错处理参考环境 Centos7参考&#xff1a;https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.htmlhttps://blog.csdn.net/bingduanlbd/article/details/5187…

Eclipse 为jar包加入 Java Source和Javadoc(如何向Eclipse中导入源码和doc)

: 当我们在MyEclipse中加入Struct&#xff0c;只是引入了jar包&#xff0c;这时使用jar包里面的类&#xff0c;是无法看到源码的&#xff0c;看到的只是这样 是反编译后的一些东西 加入源码 那么如果看到源码呢&#xff0c;就需要导入了 找到这个类对应的jar包&#xff0c;下载…