Python基础教程学习第二日:序列

来源:互联网 发布:linux 修改mac地址 编辑:程序博客网 时间:2024/06/05 19:37

序列

Python中最基本的数据结构是序列(sequence),其中最常用的两种序列类型为:列表和元祖。

列表和元组的主要区别在于,列表可以修改,元组不能。

序列操作:
1.索引,序列中所有元素都是有编号的——从0开始递增,这些元素可以通过编号进行访问。如果使用负数索引,Python会从右边,也就是最后一个元素开始计数。可以直接对序列的返回结果进行所以操作。如:

>>> fourth = input('Year: ')[3]Year: 2005>>> fourth'5'

2.分片,通过冒号隔开的两个索引来访问一定范围内的元素,其中第一个索引的元素包含在分片内,第二个不包含。如果需要分片包含序列中第一个索引以后所有的元素,只需置空最后一个索引即可,同样的如果需要包含第二个索引以前所有的元素,只要置空第一个所以即可,实际上如果需要复制整个序列,可以将两个索引都置空。注意,只要分片中第一个索引比第二个索引晚出现在序列中,如number[-3:0],结果就是一个空的序列。
在分片中,可以指定步长,隐式的默认为1,也可以显式的指定,如果指定比1大,就会跳过序列中的某些元素,例如步长为2的分片:numbers[0:10:2]。步长不能为0,但是可以为负数,此时分片从右到左提取元素,但是步长为负数时,前面两个索引号的顺序也要颠倒过来,即number[10:0:-2]。
3.序列相加,可以通过使用加运算符对序列进行连接操作:’Hello’ + ‘world!’,但是相加的两个序列,类型必须相同。
4.乘法,数字n乘以一个序列会生成一个新的序列,将原始序列重复n次。如果需要创建一个占用10个元素空间,却不包含任何有用内容的列表,可以使用None,sequence=[None]*10。

in运算符,检查一个值是否在序列中,返回值为bool型,True为真,False为假。

len返回序列中所包含的元素的数量,minmax分别返回序列中最小和最大的元素。

列表

列表是可变的。

list可以根据字符串创建列表。

>>> list('Hello')['H', 'e', 'l', 'l', 'o']

列表:
1. 元素赋值。使用索引标记来为特定位置的元素赋值。不能为位置不存在的元素赋值。
2. 元素删除。使用del语句删除序列中特定索引标记的元素,删除后,序列长度变短。
3. 分片赋值。使用序列的分片操作为多个元素赋值,例如:name[2: ] = list(‘ar’)。赋值前后的元素序列可以不等长。分片赋值也可以为列表插入新的元素,如:

>>> numbers = [1, 5]>>> numbers[1:1] = [2, 3, 4]>>> numbers[1, 2, 3, 4, 5]

同样的也可以为列表删除元素,numbers[1:4] = [ ]。
4. 列表方法。使用方式:对象.方法(参数)。
append,追加操作,lis.append(4),在lis的末尾追加一个新的对象4。
count,统计某个元素在列表中出现的次数。
extend,拓展列表,在一个列表的结尾一次性的追加另一个序列中的多个值,a.extend(b),相当于连接操作,但是修改了原始列表a。
index,在列表中找到某个元素第一个匹配项的索引位置。
insert,在列表的某个位置插入一个对象,numbers.insert(3, ‘four’)。
pop,移除列表中的一个元素(默认是最后一个,也可以指定),并且返回该元素的值,也是列表方法中,唯一有返回值的操作,相当于出栈操作。
remove,一处列表中某个元素的第一个匹配项。
reverse,将列表中的元素反向存放。
sort,在原位置对列表进行从小到大的排序,无返回值,从大到小排序的话,可以使用x.sort(reverse=True),用sorted的话可以返回列表,但是对原始列表不进行修改。

注意:复制列表用y = x[:],而不能用y = x,这样x和y指向同一个列表了。

元组

元组,不能修改,用圆括号括起来,元素之间用逗号隔开,逗号很重要,一个数字加一个逗号就构成了一个长度为1的元组。

>>> 3*(40 + 2)126>>> 3*(40 + 2,)(42, 42, 42)

tuple和list的功能基本一样,将一个序列转换成元组。

1 0
原创粉丝点击