Python's sequence

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()函数可以将列表变为元祖

其他操作和列表类似

感觉要把整个章节都要写下来了,接下来的博客会根据学习到的提炼下再记录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值