![9f1c59bb7023100dfe595763f05f80f7.png](https://img-blog.csdnimg.cn/img_convert/9f1c59bb7023100dfe595763f05f80f7.png)
一、 什么是序列
序列是Python最基本的数据结构,“X=1”指的是X是一个变量,值为1;“Y=[1,2,3]”指的是Y是一个序列(可变序列列表);每个元素被分配一个序号,即元素的位置,也被称为索引。
序列可分为可变序列,不可变序列,可变序列:列表 List,不可变序列:元祖 Tuple、字符串 str。
二、序列基础操作
1、判断是否属于序列
lst=[1,2,3,4,5]
a,b,c=1,2.0,'hello'
print(a in lst)
print(b in lst)
print(c in lst)
![ef0ca91da4830c664bf97dee50552866.png](https://img-blog.csdnimg.cn/img_convert/ef0ca91da4830c664bf97dee50552866.png)
注意:a和b虽然字符类型不一样,但是数值本身是属于lst的。
2、序列链接与重复
lst1=[1,2,3]
lst2=['a','b']
print(lst1+lst2)
print(lst2+lst1)
![11f5783df4bdb3e37f96a184055fd41a.png](https://img-blog.csdnimg.cn/img_convert/11f5783df4bdb3e37f96a184055fd41a.png)
注意:序列相加是有顺序的。
lst1=[1,2,3]
lst2=['a','b']
print(lst1*3)
print(lst2*2)
![8e0aa5e19c20276c23c854465674912a.png](https://img-blog.csdnimg.cn/img_convert/8e0aa5e19c20276c23c854465674912a.png)
3、下标索引
lst1=[1,2,3,4,5,6]
print(lst1)
print(lst1[0],lst1[2],lst1[3])
print(lst1[-1],lst1[-3])
![995a65774722b66c04bb961c22013ea0.png](https://img-blog.csdnimg.cn/img_convert/995a65774722b66c04bb961c22013ea0.png)
注意:下标0表示第一个数,下标1表示第二个数,以此类推,-1表示倒数第一个数,-2表示倒数第二个数,以此类推。
4、切片
我们可以将索引理解为指向序列中的一个元素,而切片则是指向序列中的多个元素:
lst1=[1,2,3,4,5,6]
print(lst1[0:2])
![233d5e36d90f671a2da42f564d628c79.png](https://img-blog.csdnimg.cn/img_convert/233d5e36d90f671a2da42f564d628c79.png)
注意:切片可以理解为序列中的一个区间,而且是一个左闭右开的区间,所以上述案例中并没有包含序列中的第三个元素。
lst1=[1,2,3,4,5,6]
print(lst1[:5])
![e742112adff2518ab36510cfb2b4b4cf.png](https://img-blog.csdnimg.cn/img_convert/e742112adff2518ab36510cfb2b4b4cf.png)
5、步长
lst1=[1,2,3,4,5,6]
print(lst1[1:5:2])
![703d61fc2c6ffd33f31b3e7c7382fd29.png](https://img-blog.csdnimg.cn/img_convert/703d61fc2c6ffd33f31b3e7c7382fd29.png)
上述案例可以理解为从第2个元素到第5个元素提取,然后每隔2步提取一个值。
lst1=[1,2,3,4,5,6]
print(lst1[1:5:2])
print(lst1[0::2])
![fa5c68cece1b5a89a36458e9dfe8e623.png](https://img-blog.csdnimg.cn/img_convert/fa5c68cece1b5a89a36458e9dfe8e623.png)
6、序列的基本内置全局函数
在这一小节中我将列举一些比较常用的全局函数:
lst1=[1,1,2,3,4,5,6]
print(len(lst1)) # 求长度的函数
print(max(lst1),min(lst1),sum(lst1)) # 最大值,最小值,求和
print(lst1.index(1)) # 求索引数值,即在序列中数值为1的值的索引是多少,这是个方法
print(lst1.count(1)) # 求函数中数值1一共出现了多少次,这是个方法
![914c3b2da3b2b920a7b0dd92a43d3768.png](https://img-blog.csdnimg.cn/img_convert/914c3b2da3b2b920a7b0dd92a43d3768.png)
注意:index会返回第一个值的索引。
三、列表List常用操作
列表中的元素可以是数字、字符串、列表、字典:
lst=[1,2,3,'abc',[1,2,3],[1,['旭鹏',2,3],2]]
print(lst)
![3239ec4810061a8682bdb6b87532942b.png](https://img-blog.csdnimg.cn/img_convert/3239ec4810061a8682bdb6b87532942b.png)
如果我们要单独提取这个列表中的“旭鹏”二字,可以如下操作:
lst=[1,2,3,'abc',[1,2,3],[1,['旭鹏',2,3],2]]
print(lst[-1][1][0])
先提取最后一个元素即-1,然后再提取第二个元素即1,最后再提取第一个元素即0:
![01018dccb88195acb51dfb5741edc671.png](https://img-blog.csdnimg.cn/img_convert/01018dccb88195acb51dfb5741edc671.png)
1、案例讲解
创建一个列表,包含三天的订单量100,90,80:
orders=[100,90,80]
创建一个列表name=['Amazon','Alibaba','Ebay'],增加'Wish'的名字上去:
name=['Amazon','Alibaba','Ebay']
print(name+['Wish'])
name.append('Wish')
print(name)
![b3a09ba061613e143561e8a093c15b35.png](https://img-blog.csdnimg.cn/img_convert/b3a09ba061613e143561e8a093c15b35.png)
2、列表与生成器
print(range(5),type(range(5)))
lst=list(range(5))
print(lst)
![451a8b5223dc78943868f489ceaf6faf.png](https://img-blog.csdnimg.cn/img_convert/451a8b5223dc78943868f489ceaf6faf.png)
range()本身是一个生成器,指向了一个范围,比如range(5)代表指向了0,1,2,3,4这几个值,range(2,5)代表指向了2,3,4这几个值,需要注意的是这里仅仅只是指向不是使用,range(0,10,2)代表指向了0,2,4,6,8这几个值,最后的2代表的是步长。
注意:range()生成的都是整数。
3、range添加单个元素
lst=list(range(10))
print(lst+[1,2,3])
![a5cf39b4e37530302227c9d56fbadc3e.png](https://img-blog.csdnimg.cn/img_convert/a5cf39b4e37530302227c9d56fbadc3e.png)
lst=list(range(10))
lst.append('a')
print(lst)
![d0dc8bf5fd66de08f8e27196d34cf323.png](https://img-blog.csdnimg.cn/img_convert/d0dc8bf5fd66de08f8e27196d34cf323.png)
注意,append会改变原始的数值。
4、range添加多个元素
a=[1,2,3]
b=[3,4,5]
print(a)
a.extend(b)
print(a)
a.append(b)
print(a)
![18d6f7fbd9cce806f69ca45e266ffbd9.png](https://img-blog.csdnimg.cn/img_convert/18d6f7fbd9cce806f69ca45e266ffbd9.png)
5、删除元素
lst=list(range(10))
print(lst)
lst.remove(5)# 移除值为5的元素
print(lst)
del lst[0] # 删除第一个值
print(lst)
del lst[2:4]
print(lst) # 删除第三和第四个值
lst.clear()
print(lst) # 清空所有数值
![1311aae22e72dbb946fe4d27341aa61b.png](https://img-blog.csdnimg.cn/img_convert/1311aae22e72dbb946fe4d27341aa61b.png)
注意:元祖不可单独删除内部元素(不可变性),但是可以用del语句来删除整个元祖。
6、插入元素
lst=[1,2,3]
lst.insert(0,'a') # 在第一个元素后面插入一个a
print(lst)
![4426d0f94a9a24bede25953481a953cc.png](https://img-blog.csdnimg.cn/img_convert/4426d0f94a9a24bede25953481a953cc.png)
7、复制
x=list(range(10))
y=x.copy()
z=x
print(x)
print(y)
print(z)
x[2]=88
print(x)
print(y)
print(z)
![b0cfab4aef6fc959c868b0f3d6932283.png](https://img-blog.csdnimg.cn/img_convert/b0cfab4aef6fc959c868b0f3d6932283.png)
注意:x与z中的元素都发生了改变,但是y的元素没有发生改变,这是因为copy()形成了一个新的列表。
8、排序
用sort()方法排序本身是将列表中的数字由小到大排列,字母由英文字母排列:
lst1=[1,3,11,2,89]
lst2=['z','b','a']
lst1.sort()
lst2.sort()
print(lst1,lst2)
![925ee57eb01c908b484947dd6b4e4299.png](https://img-blog.csdnimg.cn/img_convert/925ee57eb01c908b484947dd6b4e4299.png)
用sorted()函数排序本身是将列表中的数字由小到大排列,字母由英文字母排列,它与sort()方法不同的地方是它会排序并复制一个新的列表:
lst1=[1,20,8,3,66,12]
lst3=sorted(lst1)
print(lst1,lst3)
![5ec22f240aeea28691c5ae2ce8143410.png](https://img-blog.csdnimg.cn/img_convert/5ec22f240aeea28691c5ae2ce8143410.png)
四、文本序列str的常用基本操作
1、字符串引号
字符串中加引号可以单引号中镶嵌双引号,也可以双引号中镶嵌单引号:
a='abc'
b='bcd'
c='abd"bcd"'
print(a)
print(b)
print(c)
![3cecd6eacaab7fa7cdf730daba7d625a.png](https://img-blog.csdnimg.cn/img_convert/3cecd6eacaab7fa7cdf730daba7d625a.png)
2、转义字符
转义字符可以用来表示双引号或者换行:
print('"')
print('anb')
![d75588d329bd88b7e8faf934f7117b93.png](https://img-blog.csdnimg.cn/img_convert/d75588d329bd88b7e8faf934f7117b93.png)
于此同时也可以用来表示斜杠线,或者用来表示目录:
print('')
print("C:UsersypfDownloads文档出书文档亚马逊跨境电商运营实战")
print(r"C:UsersypfDownloads文档出书文档亚马逊跨境电商运营实战")
print("C:/Users/ypf/Downloads/文档/出书文档/亚马逊跨境电商运营实战")
![6bb4d6705fc32a796306eda577f3d4a6.png](https://img-blog.csdnimg.cn/img_convert/6bb4d6705fc32a796306eda577f3d4a6.png)
3、字符串常用功能
字符串的修改更换:
st='i am xupeng'
st2=st.replace('xupeng','Amazon')
print(st)
print(st2)
st='hahaha'
st2=st.replace('ha','he',2) # 只改两个ha
print(st2)
![3f3850ef323b0b6ed8ef9620c5f21778.png](https://img-blog.csdnimg.cn/img_convert/3f3850ef323b0b6ed8ef9620c5f21778.png)
字符串的拆分:
st='ypf111,123.11,11'
lst=st.split(',') # 用split来分隔
print(lst)
![7fdaf94eaf9d9183c06571f5bd4d3bdc.png](https://img-blog.csdnimg.cn/img_convert/7fdaf94eaf9d9183c06571f5bd4d3bdc.png)
字符串的连接:
lst='Amazon'
m='-'
st2=m.join(lst)
print(st2)
# 连接字符串
![f31205732531bd4420106261e5fd5030.png](https://img-blog.csdnimg.cn/img_convert/f31205732531bd4420106261e5fd5030.png)
字符串的判断:
st='Amazon Ebay Wish Alibaba'
print(st.startswith('A'),st.endswith('a'))
# 判断是否以A开头 与 判断是否以a结尾
![b68df1a30ea16ad53d3f4008c251a7e5.png](https://img-blog.csdnimg.cn/img_convert/b68df1a30ea16ad53d3f4008c251a7e5.png)
字符串的大小写变化:
st="amazon Wish"
print(st.upper()) # 全部大写
print(st.lower()) # 全部小写
print(st.swapcase()) # 大小写互换
print(st.capitalize()) # 首字母大写
![ca7768c637c728115aa58b29b75c7c52.png](https://img-blog.csdnimg.cn/img_convert/ca7768c637c728115aa58b29b75c7c52.png)
数字、字母与空格的判断:
st='123456'
print(st.isnumeric())
# 如果string只包含数字则退回True否则退回False
st='XUPENG'
print(st.isalpha())
# 如果string至少有一个字符并且所有字符都是字母则返回True,否则为False
st='xupeng '
print(st.rstrip())
# 剔除字符末尾的空格
![ed90962ad4a0aef290e6eb0e76031578.png](https://img-blog.csdnimg.cn/img_convert/ed90962ad4a0aef290e6eb0e76031578.png)
4、格式化字符
name="旭鹏"
st="关注 %s 知乎live 获得更多运营知识"%name
print(st)
# %s表示我们这里要插入一个变量(字符串),%name代表这里我们插入name
![a8556b7095574855804ec71a18cdc95b.png](https://img-blog.csdnimg.cn/img_convert/a8556b7095574855804ec71a18cdc95b.png)
关于百分号%之后可以是s,i或者f,s指的就是字符串,i指的就是整数,f指的就是浮点型:
x=4
y='xupeng'
z=1.1
print('this is %i'%x)
print('this is %s'%y)
print('this is %f'%z)
![1a1b13422d1f4277c1a5181f39e11883.png](https://img-blog.csdnimg.cn/img_convert/1a1b13422d1f4277c1a5181f39e11883.png)
如果有多个格式化字符:
print('学习 %s 与 %s'%('电商运营','编程技巧'))
![26c72f8c350f85b74e9c57115fb33229.png](https://img-blog.csdnimg.cn/img_convert/26c72f8c350f85b74e9c57115fb33229.png)
科学记数法:
m=123.123123123
print('this is %.2e'%m)
print('this is %.4E'%m)
![314c24b4a08841b28085cf3de51a1580.png](https://img-blog.csdnimg.cn/img_convert/314c24b4a08841b28085cf3de51a1580.png)
format的格式化方法:
print('旭鹏的知乎live怎么样{}'.format(',5.0满分live'))
st='早啊~!{}'
print(st.format('早啊老师'))
![c922d17a78536df4556ac3302ae3cd1d.png](https://img-blog.csdnimg.cn/img_convert/c922d17a78536df4556ac3302ae3cd1d.png)
print('{}{}{}'.format('a','b','c'),'n',
'{0}{1}{1}{0}'.format('a','b','c'),'n')
print('{}{}{}'.format('a','b','c'))
#{}与{0}的区别:都是占位符,后者有了明确的指定
![d293ccab55cf2fc81597532e8da1287a.png](https://img-blog.csdnimg.cn/img_convert/d293ccab55cf2fc81597532e8da1287a.png)
print('我的工作是{work}'.format(work='电商运营'))
#也可以用变量来指示
![1761c9bade0bc0d5c9bdde98571e4daf.png](https://img-blog.csdnimg.cn/img_convert/1761c9bade0bc0d5c9bdde98571e4daf.png)
# 百分号的话要写2个##
print('今年业绩增长了%.2f %%'%25.88)
![35273143618eb5c5c37e4b7e0114ccd6.png](https://img-blog.csdnimg.cn/img_convert/35273143618eb5c5c37e4b7e0114ccd6.png)