一、 什么是序列
序列是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)
注意:a和b虽然字符类型不一样,但是数值本身是属于lst的。
2、序列链接与重复
lst1=[1,2,3]
lst2=['a','b']
print(lst1+lst2)
print(lst2+lst1)
注意:序列相加是有顺序的。
lst1=[1,2,3]
lst2=['a','b']
print(lst1*3)
print(lst2*2)
3、下标索引
lst1=[1,2,3,4,5,6]
print(lst1)
print(lst1[0],lst1[2],lst1[3])
print(lst1[-1],lst1[-3])
注意:下标0表示第一个数,下标1表示第二个数,以此类推,-1表示倒数第一个数,-2表示倒数第二个数,以此类推。
4、切片
我们可以将索引理解为指向序列中的一个元素,而切片则是指向序列中的多个元素:
lst1=[1,2,3,4,5,6]
print(lst1[0:2])
注意:切片可以理解为序列中的一个区间,而且是一个左闭右开的区间,所以上述案例中并没有包含序列中的第三个元素。
lst1=[1,2,3,4,5,6]
print(lst1[:5])
5、步长
lst1=[1,2,3,4,5,6]
print(lst1[1:5:2])
上述案例可以理解为从第2个元素到第5个元素提取,然后每隔2步提取一个值。
lst1=[1,2,3,4,5,6]
print(lst1[1:5:2])
print(lst1[0::2])
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一共出现了多少次,这是个方法
注意:index会返回第一个值的索引。
三、列表List常用操作
列表中的元素可以是数字、字符串、列表、字典:
lst=[1,2,3,'abc',[1,2,3],[1,['旭鹏',2,3],2]]
print(lst)
如果我们要单独提取这个列表中的“旭鹏”二字,可以如下操作:
lst=[1,2,3,'abc',[1,2,3],[1,['旭鹏',2,3],2]]
print(lst[-1][1][0])
先提取最后一个元素即-1,然后再提取第二个元素即1,最后再提取第一个元素即0:
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)
2、列表与生成器
print(range(5),type(range(5)))
lst=list(range(5))
print(lst)
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])
lst=list(range(10))
lst.append('a')
print(lst)
注意,append会改变原始的数值。
4、range添加多个元素
a=[1,2,3]
b=[3,4,5]
print(a)
a.extend(b)
print(a)
a.append(b)
print(a)
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) # 清空所有数值
注意:元祖不可单独删除内部元素(不可变性),但是可以用del语句来删除整个元祖。
6、插入元素
lst=[1,2,3]
lst.insert(0,'a') # 在第一个元素后面插入一个a
print(lst)
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)
注意:x与z中的元素都发生了改变,但是y的元素没有发生改变,这是因为copy()形成了一个新的列表。
8、排序
用sort()方法排序本身是将列表中的数字由小到大排列,字母由英文字母排列:
lst1=[1,3,11,2,89]
lst2=['z','b','a']
lst1.sort()
lst2.sort()
print(lst1,lst2)
用sorted()函数排序本身是将列表中的数字由小到大排列,字母由英文字母排列,它与sort()方法不同的地方是它会排序并复制一个新的列表:
lst1=[1,20,8,3,66,12]
lst3=sorted(lst1)
print(lst1,lst3)
四、文本序列str的常用基本操作
1、字符串引号
字符串中加引号可以单引号中镶嵌双引号,也可以双引号中镶嵌单引号:
a='abc'
b='bcd'
c='abd"bcd"'
print(a)
print(b)
print(c)
2、转义字符
转义字符可以用来表示双引号或者换行:
print('\"')
print('a\nb')
于此同时也可以用来表示斜杠线,或者用来表示目录:
print('\\')
print("C:\\Users\\ypf\\Downloads\\文档\\出书文档\\亚马逊跨境电商运营实战")
print(r"C:\Users\ypf\Downloads\文档\出书文档\亚马逊跨境电商运营实战")
print("C:/Users/ypf/Downloads/文档/出书文档/亚马逊跨境电商运营实战")
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)
字符串的拆分:
st='ypf111,123.11,11'
lst=st.split(',') # 用split来分隔
print(lst)
字符串的连接:
lst='Amazon'
m='-'
st2=m.join(lst)
print(st2)
# 连接字符串
字符串的判断:
st='Amazon Ebay Wish Alibaba'
print(st.startswith('A'),st.endswith('a'))
# 判断是否以A开头 与 判断是否以a结尾
字符串的大小写变化:
st="amazon Wish"
print(st.upper()) # 全部大写
print(st.lower()) # 全部小写
print(st.swapcase()) # 大小写互换
print(st.capitalize()) # 首字母大写
数字、字母与空格的判断:
st='123456'
print(st.isnumeric())
# 如果string只包含数字则退回True否则退回False
st='XUPENG'
print(st.isalpha())
# 如果string至少有一个字符并且所有字符都是字母则返回True,否则为False
st='xupeng '
print(st.rstrip())
# 剔除字符末尾的空格
4、格式化字符
name="旭鹏"
st="关注%s知乎live 获得更多运营知识"%name
print(st)
# %s表示我们这里要插入一个变量(字符串),%name代表这里我们插入name
关于百分号%之后可以是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)
如果有多个格式化字符:
print('学习%s与%s'%('电商运营','编程技巧'))
科学记数法:
m=123.123123123
print('this is%.2e'%m)
print('this is%.4E'%m)
format的格式化方法:
print('旭鹏的知乎live怎么样{}'.format(',5.0满分live'))
st='早啊~!{}'
print(st.format('早啊老师'))
print('{}{}{}'.format('a','b','c'),'\n',
'{0}{1}{1}{0}'.format('a','b','c'),'\n')
print('{}{}{}'.format('a','b','c'))
#{}与{0}的区别:都是占位符,后者有了明确的指定
print('我的工作是{work}'.format(work='电商运营'))
#也可以用变量来指示
# 百分号的话要写2个##
print('今年业绩增长了%.2f%%'%25.88)