序列:即为有序排列,可通过下标访问到一个或多个成员,则统称为序列,包括:字符串(普通字符串+unicode字符串)、列表、元组类型。
1. 区分不同序列:
字符串:以' str '或" str "
列表: [ list ] ---- 值可更改
元组:(tuple)----值不可更改
str1 = 'i am a good girl'list1= [1,2,3,4,5]
tuple1= (5,4,3,2,1)
2. 标准类型操作符(适用于序列)
3. 序列类型操作符
-- 成员关系操作符
str1 = 'i am a good girl'list1= [1,2,3,4,5]
tuple1= (5,4,3,2,1)#判断某个元素是否属于某个序列,属于返回True,不属于返回False
print('a' in str1) #True
print(1 not in list1) #False
print(5 in tuple1) #True
-- 连接操作符【可以把一个序列和另一个相同类型的序列做连接】
str1 = 'i am a good girl'str2= ',hahaha'
print(str1+str2) #得到一个新的str:'i am a good girl,hahaha'
-- 重复操作符
str1 = 'i am a good girl'
print(str1 * 2) #得到一个新的str:'i am a good girli am a good girl'
-- 切片操作符
str1 = 'i am a good girl'list1= [1,2,3,4,5]
tuple1= (5,4,3,2,1)#通过角标取值
print(str1[3]) #m
print(list1[3]) #4
print(tuple1[3]) #2
通过切片取值:sequence(序列名)[xx:xx:xx] 初始角标:结束角标:步长
#定义一个长度为5的序列,如list
list = [5,6,7,8,9]print(list) #取出所有的值[5,6,7,8,9]
print(list[:]) #取出所有的值[5,6,7,8,9]
print(list[3]) #8
print(list[-1]) #9
print(list[2:]) #[7,8,9]
print(list[1:3]) #为前闭后开区间 [6,7]
print(list[0:4:2]) #前闭后开且隔一个打印 [5,7]#扩展用法
print(list[::2]) #隔一个取一个 [5,7,9]
print(list[::-1]) #'翻转'取值 [9,8,7,6,5]
练习:
#练习#1.有一个字符串,想每次都把位于最后的一个字符砍掉
s = 'abcde'
'''s1 = s[:-1]
s2 = s1[:-2]
s3 = s2[:-3]
s4 = s3[:-4]
print(s1)
print(s2)
print(s3)
print(s4)
#以上分析,通过切片方法可以逐次砍掉最后一个元素,该字符串长度是5时,需要切片-1、-2、-3、-4'''
for i in range(-1,-len(s),-1): #[-1,-2,-3,-4]
#print(i)
print(s[:i])
----------------------------------------------------------------------------------------------------------------------------
适合序列的内建函数:
1. 类型转换:list(),str(),tuple()
#str()虽然也适用于转换为字符串,但是得不到我们想要的结果
s = 'abcde'
print(list(s)) #['a', 'b', 'c', 'd', 'e']
print(tuple(s)) #('a', 'b', 'c', 'd', 'e')
ss = ('a','b','c','d','e')print(str(ss)) #('a', 'b', 'c', 'd', 'e')
print(list(ss)) #['a', 'b', 'c', 'd', 'e']
2. 可操作(具体到每一个序列学习时会有练习。)
enumerate(iter)
len(seq)
max(iter,key=None);min(iter,key=None)
reverse(seq)
sorted(iter,func=None,key=None,reverse=False)
sum(seq,init=0)
zip([it0,it1,...itN])