序列的通用操作

  Python包含6中内建序列,常用的有:列表元组。其他的内建序列类型有字符串Unicode字符串buffer对象xrange对象

  所有序列类型都可以进行某些特定操作,包括:索引(indexing),分片(slicing),(adding),(multiplying),成员资格(in),长度(len),找出最大最小元素的内建函数。

  索引

  序列中的所有元素都是有编号的,从0开始递增。这些元素可以通过编号分别访问。

#字符串
str = 'python'
print(str[1])
>>> y

#列表
str = ['in', 'be', 'to', 'and', 'or']
print(str[1])
>>> be

  使用负数索引时,Python会从右边,也就是从最后一个元素开始计数。最后一个元素的位置编号是-1(不是-0)

  分片

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

url = 'www.google.com'
print(url[4:10])
>>> google

  分片操作的实现需要提供两个索引作为边界,第一个索引的元素是包含在分片内的,第二个则不包含在分片内。

num = [1,2,3,4,5,6,7,8,9]
print(num[3:6])
>>> [4, 5, 6]

  分片的捷径

  如果分片所得部分包括序列结尾的元素,那么,只需置空最后一个索引即可。

num = [1,2,3,4,5,6,7,8,9]
#最后三个元素
print(num[-3:])
>>> [7, 8, 9]

#前三个元素
print(num[:3])
>>>[1, 2, 3]

  可以使用分片赋值来修改列表,但是不能修改字符串和元组。

num = [1,2,3,4,5,6,7,8,9]
num[:3] = [0]
print(num)
>>> [0, 4, 5, 6, 7, 8, 9]

  如果需要复制整个序列,可以将两个索引都置空

num = [1,2,3,4,5,6,7,8,9]
number = num[:]
print(number)
>>> [1, 2, 3, 4, 5, 6, 7, 8, 9]

  分片的步长

  默认为1,可以通过切片的第三个参数指定

#步长为2
num = [1,2,3,4,5,6,7,8,9]
print(num[0:9:2])
>>> [1, 3, 5, 7, 9]

#另一种写法
num = [1,2,3,4,5,6,7,8,9]
print(num[::2])
>>> [1, 3, 5, 7, 9]

  步长不能为0,但是可以是负数,分片从右到左提取元素

num = [1,2,3,4,5,6,7,8,9]
print(num[::-2])
>>> [9, 7, 5, 3, 1]

  当使用一个负数作为不步长时,必须让开始点(开始索引)大于结束点。

 

  序列相加

a = 'hello'
b = 'world'
print(a+b)
>>> helloworld

x = [1,2,3]
y = [4,5,6]
print(x+y)
>>> [1, 2, 3, 4, 5, 6]

  不同序列类型不能相加。

 

  乘法

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

str = 'python'
print(str*5)
>>> pythonpythonpythonpythonpython

num = [5]
print(num*5)
>>> [5, 5, 5, 5, 5]

 

  成员资格

  为了检查一个值是否在序列中,可以使用in运算符

str = 'hello world'
print('e' in str)
>>> True

print('x' in str)
>>> False

  #列表也一样

 

  最大最小值:max,min

str = 'hello world'
print(max(str))
>>> w

num = [545,8,26,781,2]
print(min(num))
>>> 2

 

转载于:https://www.cnblogs.com/jidanguanbing/p/11415795.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值