By standing on the shoulders of giants, you’ll find out that you don’t always have to reinvent the wheel.
在Python中最基本的数据结构就是序列。
Python中序列的每一个元素都有序号,也就是索引,在之前一篇Python’s basics 提到,索引有正负,都可以访问也都有临界点。
Pyhon包含六种内建序列 列表,元祖,字符串,unicode字符串,buffer对象和xrange对象。
此篇文章重点讲 列表,元祖(写博客是根据所学进度复习的)
列表和元祖最大的差别是前者是可变的后者是不可变的,所以在应用中应考虑元素是否需要变化来选择使用哪一个。
列表使用:
student1["Ashin",18] student2["Ben",20]
列表中可以包含其他列表 Students[student1,student2]
当前结构为: [["Ashin",18],["Ben",20]]
对序列进行索引和切片在上篇文章有讲过,因为字符串也是序列。
对序列还能进行 加、乘操作
对序列相加就是将两个序列合并为一个,但是要注意的是只能相同类型的序列相加
>>> seq1 = [1,2,3]
>>> seq2 = ["3","x","g"]
>>> seq3 = seq1 + seq2
>>> seq3
[1, 2, 3, '3', 'x', 'g']
当列表和字符串相加时:
>>> seq3
[1, 2, 3, '3', 'x', 'g']
>>> seq4 = "AshinLI"
>>> seq5 = seq3 + seq4
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate list (not "str") to list
序列做乘法运算时,也就是将这个序列重复所乘个数,并合并为一个序列
>>> seq2
['3', 'x', 'g']
>>> seq2 * 5
['3', 'x', 'g', '3', 'x', 'g', '3', 'x', 'g', '3', 'x', 'g', '3', 'x', 'g']
元祖与列表一样可以做加法乘法运算但是注意的是,列表做完运算其本身会改变,而元祖则是返回一个新的元祖,不会被改变,这也就证实了元祖是不可变的
>>> seq2 = ["3","x","g"]*2
>>> seq2
['3', 'x', 'g', '3', 'x', 'g']
>>> seq2 = ("q",1)
>>> seq2 *2
('q', 1, 'q', 1)
>>> seq2
('q', 1) //还是原来的值
在python中可以使用in来判断一个元素是否存在于序列中
>>> student = ["ashin","ben"]
>>> "ashin" in student
True
同样的字符串序列也可以这样用
一些有用内建函数:
len():返回序列长度
max():返回最大值
min():返回最小值
del():删除列表元素
list() 函数
一般字符串不能直接被修改,可以通过list函数转化成列表进行操作
>>> list("ashinli")
['a', 's', 'h', 'i', 'n', 'l', 'i'] //字符串变为字符列表
>>> a[3] = "3" //将第四为改为3
>>> a
['a', 's', 'h', '3', 'n']
>>> ''.join(a) //将列表生成为字符串
'ash3n'
列表的一些方法:
append():在末尾追加新元素
count():计算某个元素在列表中出现的个数
extend():在末尾追加序列或者元素
与"+" 不同的是连接操作返回的是一个新的序列,而extend返回的是被扩展的原先序列
index():查找某个元素第一次匹配位置的索引
insert():插入元素可通过索引选择位置插入
pop():移除默认最后一个元素
……方法不全部列出了,可以自行使用搜索引擎。
tuple()函数可以将列表变为元祖
其他操作和列表类似
感觉要把整个章节都要写下来了,接下来的博客会根据学习到的提炼下再记录。