正文:
本章内容会很长,所以我打算分两期出,本章分为三个大模块:列表、元组、字典。我们先将一下序列的常用操作,和列表。等第二期在讲元组和字典。

序列常用操作:

序列:一块用于存放多个值的连续内存空间,并按一定顺序排列(相当于数组)。序列结构主要包括:列表、元组、字典
索引:序列中每个元素的编号。这个编号是从0开始的。
但是有一点要说的是:索引可以为负数(是不是很神奇)而且为负数时,倒数第一个数为 -1 。我们可以通过索引来访问序列中任何元素。

下面说几个序列常见操作:
一、切片:
格式:

sname[start : end : step]

参数

含义

sname

表示序列名称。

start

切片开始位置(包括开始位置)可以省略,省略默认为0;

end

切片结束位置(不包括结束位置)可以省略,省略默认为序列长度;

step

表示切片步长,省略默认为 1

代码如下:

ls=["好好学习","天天向上","加油","小王"]
print(ls[:])         #复制整个序列
print(ls[1:3])       #获取从第二个到第三个元素

运行结果如下:

python 新建固定个数的列表 python创建一个新列表_列表


二、序列相加

在python中支持两种相同类型的序列相加,即两个序列进行连接

相同类型:同为列表、同为元组、或者同为集合,序列中的元素类型不一样没事。

代码如下:

ls1=["好好学习","天天向上","加油","小王"]
ls2=[12,33,45,56,98]
print(ls1+ls2)

运行结果如下:

python 新建固定个数的列表 python创建一个新列表_元组_02


三、序列相乘:

在python中使用数字 n 乘以一个序列会产生生成新的序列,新序列的内容为原来内容的重复 n 次的结果

代码如下:

ls=["好好学习","天天向上","加油","小王"]
print(ls*3)          #复制三遍
ls1=[None]*5
print(ls1)

运行结果如下:

python 新建固定个数的列表 python创建一个新列表_列表_03


我想吐槽一下:这个编译器 L 和 1 太难区分了,我上面写的代码第一个是 L 第二个是 1 ,你们看出来了吗?也希望大家命名的时候尽量避开这两个字母,害!真是的,好烦啊!

四、检查某个元素是否为序列成员
检查是否为序列成员用关键字 in 。
格式:

value in sequence

参数

含义

value

表示要检查元素

sequence

表示指定序列

它的返回值是 bool 值。
代码如下:

ls=["好好学习","天天向上","加油","小王"]
print("小王" in ls)

运行结果如下:

python 新建固定个数的列表 python创建一个新列表_元组_04


五、计算序列的长度、最大值、最小值

这都是python的内置函数,很多吧!赶紧去记吧!

(1)计算序列长度:使用 len() 函数

(2)计算最大值:使用max()

(3)计算最小值:使用min()

代码如下:

num = [28,36,43,83,93,28,84,92]
print("序列num的长度为",len(num))
print("序列num的最大值为",max(num))
print("序列num的最小值为",min(num))

运行结果如下:

python 新建固定个数的列表 python创建一个新列表_元组_05


列表

我们刚刚举得例子都是列表,它就是用一对中括号括着每个元素之间用 ","分割元素内容可以类型不一样

格式:

listname = [element1,element2,element3,element4]

虽然列表元素类型可以不一样,但是我们不用,哎!就是玩。(提高程序可读性)
(1)创建空列表

list = []   #创建空列表

(2)创建数值列表

list()函数基本用法

list(data)

data:表示可以转换为列表的数据,例如:range对象、字符串、元组等等。

ls=list(range(10,20,2))  #输出[10, 12, 14, 16, 18]

(3)删除列表
这个说不说都一样,python自带回收机制,所以你不删也没事。简单提一下:

del listname

listname:要删除列表名称。
(4)访问列表元素
可以直接通过索引来进行访问
代码如下:

num = [28,36,43,83,93,28,84,92]
print(num[4])
print(num[-1])

运行结果如下:

python 新建固定个数的列表 python创建一个新列表_列表_06


这里说一下:索引是从0开始的,如果用负数表示的话,最后一个数为 -1

(5)遍历列表

1.用for循环进行遍历

for item in listname:
	#输出item

item:保存获取到的元素值

2.使用for循环和enumerate()函数实现
格式:

#输出index和item
for index,item in enumerate(listname):

参数

含义

item

保存获取到的元素值

index

保存元素的索引

listname

列表名称

代码如下:

name = ["王源","王俊凯","易烊千玺","黄磊","何炅","杨洋"]
for index,item in enumerate(name):
    print(index+1,item)

运行结果如下:

python 新建固定个数的列表 python创建一个新列表_升序_07


(6)添加、修改、删除列表元素

1.添加元素

之前讲过用 + 连接两个序列,那样是可以的,我们介绍另外一种方式:append(),它是在列表末尾添加元素

格式:

listname.append(obj)

参数

含义

listname

列表名称

obj

为要添加到列表末尾的对象

代码如下:

name = ["王源","王俊凯","易烊千玺","黄磊","何炅"]
print(name)
name.append("杨洋")
print(name)

运行结果如下:

python 新建固定个数的列表 python创建一个新列表_python_08


另外还有extend(),它可以把列表添加到另一个列表末尾(类似于+的功能)

listname.extend(seq)

seq:要添加的列表
这个就不给大家举例子了,和append用法一样。

(7)修改元素
修改元素就和访问元素一样,直接通过索引来修改就可以了

代码如下:

name = ["王源","王俊凯","易烊千玺","黄磊","何炅"]
print(name)
name[0]="张子枫"
print(name)

运行结果如下:

python 新建固定个数的列表 python创建一个新列表_python 新建固定个数的列表_09


(8)删除元素

1.根据索引删除

我们还是可以用 del 语句删除

代码如下:

name = ["王源","王俊凯","易烊千玺","黄磊","何炅"]
print(name)
del name[3]
print(name)

运行结果如下:

python 新建固定个数的列表 python创建一个新列表_python_10

2.根据元素值删除
如果不知道元素所在的索引值,只知道要删除元素值可以用 remove() 方法实现。

代码如下:

name = ["王源","王俊凯","易烊千玺","黄磊","何炅"]
print(name)
name.remove("王源")
print(name)

运行结果如下:

python 新建固定个数的列表 python创建一个新列表_列表_11


但是这么用有一点点问题:如果元素值不在这个序列中,我们用了 remove 那莫我们的编译器会报错。所以我们应该先判断这个元素值是否存在,如果存在我们再进行删除。所以我们对代码进行修改一下。

name = ["王源","王俊凯","易烊千玺","黄磊","何炅"]
print(name)
if name.count("王源")>0:
	name.remove("王源")
print(name)

运行结果和上面结果一样,count()函数用于判断元素出现次数,我们等一下就说。
(9)对列表进行统计计算
1.获取列表对象出现次数
格式:

listname.count(obj)

obj:表示要判断是否存在的对象
如果返回值是 0 的话表示列表中不存在该元素值

代码如下:

name = ["王源","王俊凯","易烊千玺","黄磊","何炅"]
print(name.count("张子枫"))
print(name.count("王俊凯"))

运行结果如下:

python 新建固定个数的列表 python创建一个新列表_升序_12


2.获取指定元素首次下标

格式:

listname.index(obj)

参数

含义

listname

列表名称

obj

表示要查找的对象,如果查找对象不存在,系统会报错。所以和刚刚一样,我们可以用count函数

它的返回值即为 首次出现的索引值

3.统计数值列表的元素和
可以用sum()函数统计数值列表中各元素的和
格式:

sum(iterable[,start])

参数

含义

iterable

表示要统计的列表

start

表示统计结果再加上start值,没有默认为0

例如:

num = [28,36,43,83,93,28,84,92]
sum1=sum(num)
sum2=sum(num ,29)    #num的和加上29
print(sum1)          #487
print(sum2)          #516

(10)对列表进行排序
1.使用列表对象的 sort ()方法实现
用 sort()函数实现,对于原列表中元素顺序进行排序,排序后原列表发生改变。
格式:

listname.sort(key=None,reverse=False)

参数

含义

listname

进行排序列表的名称

key

表示指定每个列表元素中提取比较键

reverse

可选参数,如果将值指定为 True,表示降序排列、指定为 False 表示升序排列,默认为升序排列。

对于key参数,我们在对字符串进行排序时sort()函数一般默认先对大写字母进行排序,在对小写字母进行排序。如果想要不区分大小写时,就需要指定key参数。我们指定 key=str.lower来进行不区分大小写操作。
举个例子,代码如下:

num = [93,92,33,48,293,12,89,59,58]
num.sort()
print("升序:",num)
num.sort(reverse=True)
print("升序:",num)
str1 = ["Tom","cat","Angela","pet","Zoo"]
str1.sort()
print("区分字母大小写:",str1)
str1.sort(key=str.lower)
print("不区分字母大小写:",str1)

运行结果如下:

python 新建固定个数的列表 python创建一个新列表_元组_13


2.使用内置函数sorted()实现

区别一下这两个函数,一个加 ed 另一个不加。sorted与它最大的区别就是,该函数再进行排完序之后,不会对原列表进行改变,而是先生成一个副本,然后在副本内进行排序。

格式:

listname_s=sorted(listname,key=None,reverse=False)

参数

含义

listname_s

生成副本的名称

listname

要排序的列表

key

表示指定每个列表元素中提取比较键

reverse

可选参数,如果将值指定为 True,表示降序排列、指定为 False 表示升序排列,默认为升序排列。

这个 key 和 reverse 的用法都是和第一个函数用法一样,包括key的字符大小写的问题。这里就不再赘述了。只要记住两个函数的区别久好很掌握了。
(11)列表推导式
使用列表推导式可以快速生成一个列表,或者根据要求生成指定的列表。
1.生成指定范围的数值列表
格式:

listname = [Expression for var in range]

参数

含义

listname

生成的列表的名称

Expression

表达式,用于计算新列表的元素

var

循环变量

range

采用range()函数生成range对象

代码如下:

listname = [x*3 for x in range(1,10,2)]
print(listname)

运行结果如下:

python 新建固定个数的列表 python创建一个新列表_元组_14


2.根据列表生成指定需求的列表

格式:

newlist = [Expression for var in list]

参数

含义

newname

生成的列表的名称

Expression

表达式,用于计算新列表的元素

var

变量,值为后面列表的每个元素值

list

用于计算生成新列表的原列表

代码如下:

pince = [1200,1500,3984,2827,9382,2938]
sale = [int(x*0.5) for x in pince]
print("原来价格:",pince)
print("打五折后价格:",sale)

运行结果如下:

python 新建固定个数的列表 python创建一个新列表_列表_15


3.从列表选择符合条件的元素值组成新的列表

格式:

newlist = [Expression for var in list if condition]

参数

含义

newname

生成的列表的名称

Expression

表达式,用于计算新列表的元素

var

变量,值为后面列表的每个元素值

list

用于计算生成新列表的原列表

condition

条件表达式,用于指定筛选条件

代码如下:

pince = [1200,1500,3984,2827,9382,2938]
sale = [x for x in pince if x>2000]
print("原来价格:",pince)
print("大于2000价格:",sale)

运行结果如下:

python 新建固定个数的列表 python创建一个新列表_元组_16


到这列表的知识就这些了