python基础教程学习笔记 — 列表和元祖(一)

概念

Python中最基本的数据结构是序列 。Python中包含6种内建的序列:

  1. 列表
  2. 元组
  3. 字符串
  4. Unicode字符串
  5. buffer对象
  6. xrange对象

列表和元祖主要的区别就是:列表可以修改,元组则不可以。

容器

容器基本是包含其他对象的任意对象。序列(元组和列表)和映射(字典)是两类主要的容器。

通用序列操作

所有序列类型都可以进行某些特定的操作,这些操作包括:

  1. 索引(indexing)
  2. 分片(slicing)
  3. 加(adding)
  4. 乘(multiplying)
  5. 检查某个元素是否属于序列的成员
  6. 计算序列长度
  7. 迭代(iteration)
  8. 最大或者最小的内建函数等
索引

通过编号访问。

>>> greeting="hello"
>>> greeting[0]
'h'
>>> 

如果使用负数索引时,Python会从右边开始进行计数,不过最后一个元素的位置编号为-1而不是0:

>>> greeting="hello"
>>> greeting[0]
'h'
>>> greeting[-1]
'o'
>>> 
分片

分片和索引类似,可以操作访问一定范围内的元素。分片通过冒号隔开的两个索引来实现:


//开始到第十个元素打印
>>> tag="https://github.com/crazyandcoder"
>>> tag[0:10]
'https://gi'

//开始到倒数第二个元素打印
>>> tag[0:-1]
'https://github.com/crazyandcode'
>>> 

分片操作对于提取序列的一部分是很有用的。第一个索引的元素是包含在分片内的,而第二个则不包含在分片内

如果需要从后往前获取的话,则可以使用下面的索引:

>>> tag[-13:]
'crazyandcoder'
>>> 

从前往后,包含第一个的话,则可以使用:

>>> tag[:5]
'https'
>>> 

如果复制整个序列,则可以使用将两个索引都设置成空:

>>> tag[:]
'https://github.com/crazyandcoder'
>>> 

步长

分片默认的步长为1,分片就是按照这个步长逐个进行遍历序列的元素,返回开始和结束点之间所有的元素。

>>> tag=[1,2,3,4,5,6,7,8,9,10]
>>> tag
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> tag[0:10:1]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> 

第三个参数就是步长,步长不可以为0,但是可以为负数,即从后往前遍历

>>> tag[::4]
[1, 5, 9]
>>> tag[8:3:-1]
[9, 8, 7, 6, 5]
>>> tag[10:0:-2]
[10, 8, 6, 4, 2]
>>> tag[::-2]
[10, 8, 6, 4, 2]
>>> tag[5::-2]
[6, 4, 2]
>>> tag[:5:-2]
[10, 8]
>>> 

使用正步长时,开始点的元素(最左边元素)包括在结果之中,而结束点的元素(最右边)则不再分片之内。当使用一个负数作为步长时,必须让开始点大于结束的(索引)。

序列相加

两种同类型的序列才可以进行连接相加操作。

>>> [1,2,3]+[4,5,6]
[1, 2, 3, 4, 5, 6]

>>> [1,2,3]+[a,b,c]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
>>> 
乘法

数字x乘以一个序列,则会重复x次。

>>> "python"*5
'pythonpythonpythonpythonpython'

>>> [1,2,3]*5
[1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]
是否所属在序列中

通过in 运算符来计算是否在一个序列中,结果返回TRUE和FALSE

>>> permisson="rw"
>>> "w" in permisson
True
>>> "f" in permisson
False
>>> 
最大值最小值

len、max、min是Python的内建函数,分别返回序列中包含元素的数量,以及最大值和最小值。

>>> num=[100,2,39,1000]
>>> len(num)
4
>>> max(num)
1000
>>> min(num)
2
>>> 

以上就是序列的一些基本操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值