Python基础篇-序列基础知识

2016-08-31 · 🙈Ray · 0条 · 306次

>_ 序列基本知识

在python中,最基本的数据结构是序列(sequence),序列中每个元素被分配一个序号,表示元素的位置,称为索引,从0开始。Python的内建序列包括元组、列表、字符串、Unicode字符串、buffer对象和xrange对象。元组不可更改,列表可更改。

容器(container)基本上是包含其他对象的任一对象。序列(例如列表和元组)和映射(例如字典)是两类主要的容器。序列中的每个元素都有自己的编号,而映射中的每个元素则有一个名字(也称为键)。至于既不是序列也不是映射的容器类型,集合(set)就是一个例子。

序列的通用操作:索引(indexiing)、分片(slicing)、加(adding)、乘(multiplying)、检查某个元素是否属于序列的成员(成员资格)。内建函数:计算序列长度、找出最大元素和最小元素、对序列进行迭代。

>_ 序列索引

序列中的元素可以通过编号访问,使用复数的时候会从右边进行索引,-1表示右边第一个字符。例:

>>> greeting = ”hello”

>>> greeting[0]

‘h’

>>> greeting[-1]

‘o’

如果一个函数的调用返回一个序列,那么可以直接对返回结果进行索引操作。

>>> fouth = input("year:")[3]

>>> year:2016

>>>fouth

‘6’

>_ 分片

分片通过冒号隔开的两个索引来实现。第一个索引是提取的第一个元素的编号,第二个索引是分片后面的部分第一个元素的编号。(第一个包含其中,第二个索引不包含在提取的片段中)

>>> site = http://www.geek-era.com/site

>>> site[7:-5]

‘www.geek-era.com’

在分片中,如果左边的索引比右边的索引晚出现在序列中,就会返回一个空的序列。

>>> site[7,0]

‘’

如果分片包含最后的元素,那么第二个索引可以置空,例:

>>> site[7:]

‘www.geek-era.com/site’

如果需要包含开始的元素,可以将开始的元素置空,例:

>>> site[:4]

‘http’

如果需要复制整个序列,则两个索引号都置空即可。

>>> site[:]

'http://www.geek-era.com/site'

分片的时候可以设置步长,默认的步长是1,如果设置为大于1的值,将会跳过某些元素。例:

>>> site[0:10:2]

‘ht:/w’

步长不能为0,但是可以为复数,如果为复数,将会从右边开始提取。此时需要第一个索引在第二个索引之后出现,截取的片段中包含第一个索引,不包含第二个索引。例:

>>> site[10:0:-2]

‘.w/:t’

当省略第二个索引的时候,是可以取到最后一个元素的。

>>> site[::-3]

'esoa-ew/ph

>_ 序列相加

使用+号可以进行序列的相加操作,但是只有两种相同类型的序列才能进行连接操作。比如要尝试把列表和字符串连接在一起是会报错的。

>_ 序列乘法

用数字x乘以一个序列,会产生一个新的序列,在新序列中,原来的序列将会被重复x次。例:

>>> "Python"*3

'PythonPythonPython'

>_ None、空列表和初始化

None是一个python的内建值,确切含义是“这里什么也没有”。空列表可以用[]来创建,但是如果要初始化一个占用10个元素空间的空列表,可以使用[None]*10.

>_ 成员资格

成员资格检查用in运算符,如果成立,返回true,不成立,返回false。该运算符是布尔运算符。例:

>>> sum = [1,2,3,4]

>>> 1 in sum

True

>>> '1' in sum

False

>>> "1" in sum

False

>_ 长度、最大值和最小值

例:>>> number = [12,23,241,3425]

>>> len(number)

4

>>> max(number)

3425

>>> min(number)

12

>>> max(1,2)

2

>>> min(1,2)

1

max和min函数并不是以序列做为参数,而是以多个数字作为参数。


  0