一:序列

1:连接操作符(+)

这个操作符允许把一个序列和另一个相同类型的序列做连接,生成新的序列。语法如下:sequence1 + sequence2

该表达式的结果是一个包含sequence1和sequence2 的内容的新序列。

注意,这个操作不是合并操作中最快或者说最有效的。对字符串来说,这个操作不如把所有的子字符串放到一个列表或可迭代对象中,然后调用一个join方法来把所有的内容连接在一起节约内存;

类似地,对列表来说,推荐用列表类型的extend()方法来把两个或者多个列表对象合并。

2:切片操作符([], [:], [::])

通过单一索引访问序列的一个元素的时候,如果访问一个越界的索引,会引发一个如下的异常:

>>>names = ('Faye', 'Leanna', 'Daylen')
>>>print names[4]
Traceback (most recent call last): File"<stdin>", line 1, in ?
IndexError: tuple index out of range 

切片访问方式,只要简单的给出开始和结束的索引值,并且用冒号分隔就可以了,其语法如下:

sequence[starting_index:ending_index]

通过这种方式可以得到从起始索引到结束索引(不包括结束索引对应的元素)之间的一"片"元素。起始索引和结束索引都是可选的,如果没有提供或者用None 作为索引值,切片操作会从序列的最开始处开始,或者直到序列的最末尾结束。

在切片访问中,没有越界一说,开始和结束素引值可以超过序列的范围。起始索引可以小于0,而对于结束索引,也可以超出序列的长度。

切片访问中,还可以有步长参数,该参数类似于range中的步长参数。步长默认为1。

3:内建函数

像list(), str(), tuple()这样的工厂函数,实际上是将参数内容浅拷贝到新生成的对象中。其实在连接操作和重复操作时,也是同样的浅拷贝。浅拷贝就是只复制了引用。

二:字符串

1:Python实际上有3类字符串:通常意义的字符串(str),Unicode字符串(unicode),还有一个抽象类basestring,str和unicode都是basestring的子类。这个basestring是不能实例化的。

2:在字符串中,成员操作符(in ,not in)用于判断一个字符或者一个子串是否出现在另一个字符串中。出现则返回True,否则返回False。

3:连接字符串,除了使用连接操作符(+)之外,更加推荐使用字符串格式化操作符(%),或者把所有字符串放到一个列表中,然后用join方法将它们连在一起:

>>> '%s %s' % ('Spanish', 'Inquisition')
'Spanish Inquisition'
>>> s = ' '.join(('Spanish', 'Inquisition', 'Made Easy'))
>>> s
'Spanish Inquisition Made Easy' 

4:如果把一个普通字符串和一个Unicode字符串做连接处理,Python 会在连接操作前先把普通字符串转化为Unicode 字符串:

>>> 'Hello' + u' ' + 'World' + u'!'
u'Hello World!' 

5:格式化操作符(%)

Python支持两种格式的输入参数。第一种是元组,这基本上是一种C的printf()风格的转换参数集;

Python支持的第二种形式是字典形式,这种形式里面,key 是作为格式字符串出现,相对应的value 值作为参数在进行转化时提供给格式字符串。例子如下:

>>> adict = {'lang': 'Python', 'howmany':3}
>>> 'There are %(howmany)d %(lang)s QuotationSymbols' % adict
'There are 3 Python Quotation Symbols' 

格式字符串既可以跟print语句一起用来向终端用户输出数据,又可以用来合并字符串形成新字符串。

6:原始字符串

原始字符串是为了对付那些在字符串中出现的特殊字符。在原始字符串里,所有的字符都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。原始字符串的这个特性让一些工作变得非常的方便,比如正则表达式的创建。

除了原始字符串符号(引号前面的字母"r")以外,原始字符串跟普通字符串有着几乎完全相同的语法。这个'r'可以是小写也可以是大写,唯一的要求是必须紧靠在第一个引号前。

比如需要一个反斜杠加一个'n',而不是一个换行符:

>>> '\n'
'\n'
>>> astr = '\n'
>>> print astr >>> bstr = r'\n'
>>> print bstr
\n
>>> r'\n'
'\\n' 

7:chr()、unichr()和ord()

chr()函数用一个范围在range(256)内的(就是0到255)整数做参数,返回一个对应的字符.unichr()跟它一样,只不过返回的是Unicode字符。

ord()函数是chr()函数(对于8 位的ASCII 字符串)或unichr()函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的ASCII数值,或者Unicode数值,如果所给的Unicode 字符超出了你的Python 定义范围,则会引发一个TypeError 的异常。

>>> chr(65)
'A' >>> ord('a')
97 >>> unichr(12345)
u'\u3039' 

8:字符串内建方法join

str.join(iterable)

以str为分隔符,将seq中所有字符串合并为一个新的字符串,并返回新的字符串。比如:

>>> ''.join(('hello',  'world',  'hehe'))
'helloworldhehe' >>> ' '.join(('hello', 'world', 'hehe'))
'hello world hehe' >>> '-'.join(('hello', 'world', 'hehe'))
'hello-world-hehe'

三:列表

1:列表的比较

如果比较的是两个同类的对象,比较操作是非常直观的。比如数字和字符串,直接比较它们的值就行了。对于序列类型,比较操作稍微有点复杂了。

列表的比较,如果它的元素都是相同类型,则用标准的比较方法来作比较.否则,当我们比较list1和list2时,list1和list2进行逐项比较。如果比较的值相等,那么两个序列的下一个值继续比较,直到不相等的情况出现,或者到达较短的一个序列的末尾,在这种情况下,长的序列被认为是"较大"的。

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

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

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

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

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

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

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

e:如果比较完了两个列表的元素而且所有元素都是相等的,那么结果就是个平局,就是说返回一个0。

四:元组

1:虽然元组本身不可变,但是元组可以包含可变的对象。

Python基础:03序列:字符串、列表和元组的更多相关文章

  1. Python基础系列----序列(列表、元组、字符串)

    1.定义                                                                                               1 ...

  2. Python基础:序列(列表、元组)

    一.概述 列表(list)是由一个个 Python对象 组成的序列.其中,Python对象 可以是任何类型的对象,包括 Python标准类型(数值.字符串.列表.元组和字典)以及 用户自定义类型(类) ...

  3. Python基础(3)--列表和元组

    Python包含6种内建序列:列表.元组.字符串.Unicode字符串.buffer对象.xrange对象 本篇主要讨论最常用的两种类型:列表.元组 本文地址:http://www.cnblogs.c ...

  4. Python基础(4)列表、元组、字符串、字典、集合、文件操作

    列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 详见:http://www.cnblogs.com/alex3714/articles/5717620.html 1.列表和元 ...

  5. python基础教程-第二章-列表和元组

    本章将引入一个新的概念,:数据结构.数据结构是通过某种方式(例如对元素进行编号)组织在 一起的数据元素的集合,这些数据元素可以是数字或者字符,甚至可以是其他数据结构.在python中,最基本的数据结构 ...

  6. Python学习三---序列、列表、元组

    一.序列 1.1.序列概念 pythn中最基本的数据结构是序列(sequence). 序列中每个元素被分配一个序号-元素索引,第一个索引是0,第二个是1,以此类推.类似JAVA中数组和集合中的下标. ...

  7. Python数据结构:序列(列表[]、元组())与映射(字典{})语法总结

    一.概述:Python中两种基本的数据结构是序列和映射,序列包含:可变的列表和不可变的元组:而当序列不够用时就出现了映射:字典.列表中的元素是可以变化的,元组里面的元素一旦初始化后就不可更改.列表和元 ...

  8. python基础教程总结1——列表和元组

    1.序列 python含有6种内建序列——列表,元组,字符串,Unicode字符串,buffer对象,xrange对象 2.通用序列操作 2.1 索引 注:   input()根据用户输入变换相应的类 ...

  9. 1.10 Python基础知识 - 序列:列表

    在Python中有很多的组合数据类型,其中包括列表,元组,字符串等数据类型,这些数据类型统称为序列类型,用他们可以处理复杂的数据. 列表,是一组有序元素组合的数据结构.列表是可变的数据类型. 列表采用 ...

  10. python基础03序列

    sequence 序列 sequence序列是一组有顺序的元素的集合 (严格的说,是对象的集合,但鉴于没有引入对象的概念,暂时说元素) 序列可以包含一个或多个元素,也可以没有任何元素 我们之前所说的基 ...

随机推荐

  1. 利用Nginx轻松实现Ajax的跨域请求(前后端分离开发调试必备神技)

    利用Nginx轻松实现浏览器中Ajax的跨域请求(前后端分离开发调试必备神技) 前言 为什么会出现跨域? 造成跨域问题的原因是因为浏览器受到同源策略的限制,也就是说js只能访问和操作自己域下的资源,不 ...

  2. webstorm之Monokai-Sublime主题颜色设置方法及激活注册码

    打开https://github.com/OtaK/jetbrains-monokai-sublime 链接,然后点击右边的下载ZIP文件即可.解压之后,会得到一个Monokai-Sublime.ja ...

  3. tesseract训练手写体

    前面的步骤都一样,从第4步开始 4.使用tesseract生成.box文件: tesseract eng.handwriting.exp0.tif eng.handwriting.exp0 -l en ...

  4. EL表达式如何读取一个string型的list 一个单纯的的字符串list

    <c:forEach begin="0" end="${columnList.size()-1}" var="i"> ${ co ...

  5. python邮件发送:普通文本、html、添加附件

    # -*- coding: utf-8 -*- # @Time : 2019/9/19 13:46 # @Author : HuangWenjun # @Email : 350920551@qq.co ...

  6. python基础--类的继承以及mro

    继承: 什么是继承: 继承是一种关系,描述两个对象之间什么是什么的关系 在程序中,继承描述的是类和类之间的关系 例如 a继承了b,a就能直接使用b已经存在的方法和属性了 a称之为子类,b称之为父类,成 ...

  7. poj 2288 Islands and Bridges——状压dp(哈密尔顿回路)

    题目:http://poj.org/problem?id=2288 不知为什么记忆化搜索就是WA得不得了! #include<iostream> #include<cstdio> ...

  8. svn利用钩子脚本功能实现代码同步到web目录

    一.hook简单介绍 为了方便管理员控制提交的过程 ,Subversion提供了hook机制.当特定的 事件发生时,相应的 hook会被调用,hook其实就相当于特定事件的处理函数.每个hook会得到 ...

  9. LintCode刷题笔记-- InterLeaving

    标签: 动态规划 解题思路 1. 这道题最重要的是,存在三个字符串,但是并不需要两个二维矩阵来进行解,因为可以使用i+j-1来代表s3的下标,这样就可以通过i和j来遍历s3了.因为对于任何一个合法的交 ...

  10. Day2-转自金角大王

    本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...