python的序列包括字符串列表和什么_Python基础:03序列:字符串、列表和元组

一:序列

1:连接操作符(+)

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

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

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

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

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

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

>>>names = ('Faye', 'Leanna', 'Daylen')>>>print names[4]

Traceback (most recent call last): File"", 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'

>>> printastr>>> bstr = r'\n'

>>> printbstr

\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:虽然元组本身不可变,但是元组可以包含可变的对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值