Python学习从0到1 day10 Python数据容器.1.列表

我一直相信

        ——24.1.27

一、数据容器的定义

1.Python中的数据容器:

一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素,每一个元素,可以是任意类型的数据,如字符串、数字、布尔等

2.数据容器的分类

数据容器根据特点的不同,如:

        是否支持重复元素

        是否可以修改

        是否有序,等

分为五类,分别是:

        列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)

它们各有特点,但都满足可以容纳多个元素的特性

二、数据容器-列表

1.列表的定义

字面量:[元素1,元素2,元素3,……]

定义变量:变量名称 = [元素1,元素2,元素3,……]

定义空列表:变量名称 = [ ]         变量名称 = list()

列表内的每一个数据,称之为元素

以[ ]作为标识

列表内每一个元素之间用“,”隔开

注意:列表可以一次性存储多个数据,且可以为不同的数据类型,支持嵌套

案例演示

future_list = ["一切都会好的","万事胜意","我一直相信"]
print(future_list)
print(type(future_list))

嵌套演示

future_list1 = [["mqz","lyc","wp","lcl"],[100,85,90,75],1,1,4]
print(future_list1)

2.总结

1.列表的定义语法:

        [元素1,元素2,元素3,……]

2.什么是元素:

        数据容器内的每一份数据,都称之为元素

3.元素的类型有限制吗:

元素的数据类型没有任何限制,甚至元素也可以是列表,这样就定义了嵌套列表

3.列表的下标(索引)

如何从列表中取出特定位置的数据呢?

        我们可以使用:下标索引

列表中的每一个元素,都有其位置下标索引,从前向后的方向,从0开始、依次递增,我们只需要按照下标索引,即可取得对应位置的元素

或者,可以反向索引,也就是从右向左,从后向前,从-1开始,依次递减(-1、-2、-3、……)

future_list = ["一切都会好的","万事胜意","我一直相信"]
print(future_list[1])
print(future_list[0])
print(future_list[2])

print(future_list[0])
print(future_list[1])
print(future_list[2])

print(future_list[-3])
print(future_list[-2])
print(future_list[-1])

如果列表是嵌套的列表,同样支持下标索引

future_list1 = [["mqz","lyc","wp","lcl"],[100,85,90,75],1,1,4]
print(future_list1[0][3])
print(future_list1[0][1])

注意:通过下标索引取数据,一定不要超出范围

4.总结

1.列表的下标索引是什么:

        列表的每一个元素,都有编号称之为下标索引

        从前向后的方向,编号从0开始递增

        从后向前的方向,编号从-1开始递减

2.如何通过下标索引取出对应位置的元素呢?

        列表[下标],即可取出

3.下标索引的注意事项:

        需注意下标索引的取值范围,超出范围无法取出元素,并且会报错

三、列表的常用操作(方法)和特点

1.函数和方法

函数是一个封装的代码单元,可以提供特定功能

Python中,如果将函数定义为class(类)的成员,那么函数会称之为:方法

函数:

        def add(x,y):

                return x+y

方法:

class Student:

        def add(self,x,y):

                return x+y

方法和函数的功能一样,有传入参数,有返回值,只是方法的使用格式不同

函数的使用:num = add(1,2),可以直接通过函数名,传入参数调用

方法的使用:student = Student(),先获得方法所在的这个叫做class类对象

                      num = student.add(1,2),再通过class类对象.将方法点出来

2.列表的查询功能(方法)

1.查找某元素的下标

查找某元素的下标

功能:查找指定元素在列表的下标,如果找不到,报错ValueError

语法:列表.index(元素)

index就是列表对象(变量)内置的方法(函数)

例:

future_list = ["一切都会好的","万事胜意","我一直相信"]
print(future_list.index("一切都会好的"))
index = future_list.index("一切都会好的")
print(index)

 2.统计列表内,有多少个元素

语法:len(列表)

可以得到一个int数字,表示列表内的元素数量

my_list1 = [1,1,1,1,1,1,9,7,6,4,3]
count = my_list1.count(1)
print(f"列表中1的个数有:{count}个")
count = len(my_list1)
print(f"列表中元素个数有{count}个")

3.列表的修改功能(方法)

1.修改特定位置(索引)的元素值:

语法:列表[下标] = 值

可以使用如上语法,直接对指定下标(正向、反向下标均可)的值进行:重新赋值(修改)

future_list = ["一切都会好的","万事胜意","我一直相信"]
future_list[2] = "我一直相信,一切都会好的"
print(future_list[2])

2.插入元素:

语法:列表.insert(下标,元素),在指定的下标位置,插入指定的元素

future_list = ["一切都会好的","万事胜意","我一直相信"]
future_list.insert(2,"苦难是花开的伏笔")
print(future_list)

3.追加元素方式1:

语法:列表.append(元素),将指定元素,追加到列表的尾部

future_list = ["一切都会好的","万事胜意","我一直相信"]
future_list.append("苦难是花开的伏笔")
print(future_list)

4.追加元素方式2:

语法:列表.extend(其他数据容器),将其他数据容器的内容取出,依次追加到列表尾部

future_list = ["一切都会好的","万事胜意","我一直相信"]
future_list.append("苦难是花开的伏笔")
print(future_list)

future_list1 = [["mqz","lyc","wp","lcl"],[100,85,90,75],1,1,4]

future_list.extend(future_list1)
print(future_list)

5.删除元素

语法1:del 列表[下标]

语法2:列表.pop(下标)

del只能删除元素,而pop不仅能将元素删除还能将删除的元素作为返回值得到

future_list = ["一切都会好的","万事胜意","我一直相信"]
future_list.append("苦难是花开的伏笔")
print(future_list)
del future_list[1]
print(future_list)
future_list.pop(1)
print(future_list)

6.列表的修改功能(方法)

删除某元素在列表中的第一个匹配项

语法:列表.remove(元素)

my_list = [1,2,3,2,3]
my_list.remove(2)
print(my_list)
future_list = ["一切都会好的","万事胜意","我一直相信"]
future_list.append("苦难是花开的伏笔")
print(future_list)
future_list.remove("苦难是花开的伏笔")
print(future_list)

7.清空列表内容

语法:列表.clear()

my_list = [1,2,3,2,3]
my_list.clear()
print(my_list)

8.统计某元素在列表内的数量

语法:列表.count(元素)

my_list1 = [1,1,1,1,1,1,9,7,6,4,3]
count = my_list1.count(1)
print(f"列表中1的个数有:{count}个")

4.总结

四、列表的特点

①可以容纳多个元素(上限为2**63-1、9223372036854775807个)

②可以容纳不同类型的元素(混装)

③数据是有序存储的(有下标符号)

④允许重复数据存在

⑤可以修改(增加或删除元素等)

五、练习案例:常用功能练习

有一个列表,内容是:[21,25,21,23,22,20],记录的是一批学生的年龄

请通过列表的功能(方法),对其进行:

1.定义这个列表,并用变量接受它

2.追加一个数字31,到列表的尾部

3.追加一个新列表[29,33,30],到列表的尾部

4.取出第一个元素

5.取出最后一个元素

6.查找元素31,在列表中的下标位置

ExampleList = [21,25,21,23,22,20]
ExampleList.append(31)
ExampleList2 = [29,33,30]
ExampleList.extend(ExampleList2)
print(ExampleList[0])
print(ExampleList[len(ExampleList)-1])
print(ExampleList[-1])
print(ExampleList.index(31))

六、列表的遍历

什么是遍历?

        将容器内的元素依次取出进行处理的行为,称之为:遍历、迭代

如何遍历列表的元素?

        可以使用while或for循环

如何在循环中取出列表的元素?

        使用列表[下标]的方式取出

循环条件如何控制?

        定义一个变量表示下标,从0开始

        循环条件为 下标值 < 列表的元素数量

1.列表的遍历——while循环

def list_while_func():
    #while循环遍历列表
    my_list = ['一切都会好的','未来可期','苦难是花开的伏笔']
    # 循环控制变量通过下标索引来控制,默认0
    # 每一次循环将下标索引变量+1
    # 循环条件:下标索引变量 < 列表的元素数量
    i = 0
    while i < len(my_list):
        print(my_list[i])
        i += 1

list_while_func()

2.列表的遍历——for循环

def list_for_func():
    my_list2 = [1,1,4,8,5,7,2,3,6]
    for element in my_list2:
        print(element,end=' ')

list_for_func()

3.while循环和for循环的对比

while循环和for循环,都是循环语句,但是细节不同:

在循环控制上:

        while循环可以自定义循环条件,并自行控制

        for循环不可以自定义循环条件,只可以一个个从容器内取出数据就

在无限循环上:

        while循环可以通过条件控制做到无限循环

        for循环理论上不可以,因为被遍历的容器容量不是无限的

在使用场景上:

        while循环适用于任何想要循环的场景

        for循环适用于,遍历数据容器的场景或简单的固定次数循环场景

for循环更简单,while更灵活

for用于从容器内依次取出元素并处理,while用以任何需要循环的场景

4.练习案例:取出列表内的偶数

定义一个列表,内容是:[1,2,3,4,5,6,7,8,9,10]

        遍历列表,取出列表内的偶数,并存入一个新的列表对象中

        使用while循环和for循环各操作一次

提示:

        通过if判断来确认偶数

        通过列表的append方法,来增加元素

arr = [1,2,3,4,5,6,7,8,9,10]
i=0
arr2 = []
for i in arr:
    if i % 2 == 0:
        arr2.append(i)
print(arr)
print(arr2)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值