【Python】数据容器--列表常用方法

数据容器 – 列表

一、列表定义:list()

1、列表的定义语法:[元素1, 元素2, 元素3……]
释:[]表示列表,不同的元素之间用【英文逗号】间隔,可以有多个【元素】

2、什么是元素
数据容器内的每一份数据,都称之为元素

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

列表元素支持所有的数据类型:字符串、整型、布尔型、浮点型、列表……

list_test = ["字符串元素", 666, True, 17.22, ["我是嵌套列表中的第一个元素", 888]]
print(list_test)
print(type(list_test))

空列表

list_null1 = []
print(list_null1)
print(type(list_null1))

list_null2 = list()
print(list_null2)
print(type(list_null2))

二、列表下标索引:

1、列表的下标索引是什么?
列表的每一个元素,都有编号称之为下标索引;
从前向后的方向,编号从0开始递增;
从后向前的方向,编号从-1开始递增;

2、如何通过下标索引取出对应位置的元素呢?
格式:列表[下标]
即可取出;

3、下标索引的注意事项:
要注意下标索引的取值范围,超出范围无法取出元素,并且会报错
IndexError: list index out of range
# 从前向后:
# 取出列表中的第一个元素(最左侧元素)
print(list_test[0])
# 取出列表中的最后一个元素(最右侧元素)
print(list_test[4])
# 从后向前:
# 取出列表中的第一个元素(最左侧元素)
print(list_test[-5])
# 取出列表中的最后一个元素(最右侧元素)
print(list_test[-1])
# 取嵌套列表中的元素
print(list_test[-1][0])

方法

函数:一个封装的代码单元,可以提供特定的功能
方法:在python中,如果将函数定义为class()的成员,那么函数会被称之为:方法

函数定义:
def add(x, y):
    return x+y

方法定义:
class Student:
    def add(self, x, y):  将函数写在了class类里
        return x+y


方法和函数的功能一样,有传入参数,有返回值,只是方法的使用格式不同:
函数的使用:
num = add(1,2)  # 直接调用函数,传参,定义变量接收函数的返回值
方法的使用:
student = Student()  # 先实例化class类
num = student.add(1,2) # 再用通过类.方法名,【点】将这个类中的方法调用使用,再传参赋值为定义的变量;
"""
定位元素下标
查找不存在的元素,会报错:ValueError: 元素内容 is not in list
"""
# 定义一个列表
list_test = ["字符串元素", 666, True, 17.22, ["我是嵌套列表中的第一个元素", 888]]
# index666 = list_test.index(66611) # 不存在的元素,会报错
index666 = list_test.index(666)
print(f"元素666,在列表中的下标为{index666}")
print(f"元素666,在列表中的下标为:",index666)

修改指定位置(索引)的元素值
语法:列表[下标]=值

# 定义一个列表
list_test = ["字符串元素", 666, True, 17.22, ["我是嵌套列表中的第一个元素", 888]]
print("原列表元素值:\t\t",list_test)
# 正向下标定位修改
list_test[1] = "我是666修改后的新元素内容"
print("修改后的列表元素:\t",list_test)
# 反向下标定位修改
list_test[-1][-1] = "我是列表中最后一个嵌套列表中的最后一个元素替换后的值"
print("修改后的列表元素:\t",list_test)

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

# 定义一个列表
list_test = ["字符串元素", 666, True, 17.22, ["我是嵌套列表中的第一个元素", 888]]
print("原列表元素值:\t\t",list_test)
# 指定下标位置,插入指定的元素
list_test.insert(1,"我是插入在下标【1】位置的一个元素")
print("修改后的列表元素:\t", list_test)

追加:append – 在列表的尾部,追加指定的一个元素
语法:列表.append(元素)

# 定义一个列表
list_test = ["字符串元素", 666, True, 17.22, ["我是嵌套列表中的第一个元素", 888]]
print("原列表元素值:\t\t",list_test)
# 指定下标位置,插入指定的元素
list_test.append("我是追加在列表尾部的一个元素")
print("修改后的列表元素:\t", list_test)

追加:extend – 在列表的尾部,追加指定的多个元素
语法:列表.extend(元素)

# 定义一个列表
list_test = ["字符串元素", 666, True, 17.22, ["我是嵌套列表中的第一个元素", 888]]
print("原列表元素值:\t\t",list_test)
# 指定下标位置,插入指定的元素
list_test.extend(["包含我之后都是追加在列表尾部的多个新元素哦!",777,False, 12.22])
print("追加一批元素后的列表元素:\t", list_test)

删除:
方式一:del – 删除指定下标的元素
语法:del 列表(下标)
方式二:pop – 删除指定下标的元素
语法:列表.pop(下标)

# 定义一个列表
list_test = ["字符串元素", 666, True, 17.22, ["我是嵌套列表中的第一个元素", 888]]
print("原列表元素值:\t\t",list_test)
# del删除
del_element = list_test[1]
print(f"下标【1】的数据是:{del_element}")
del list_test[1]
print("删除了下标【1】元素后的列表:\t", list_test)
# pop删除
pop_element = list_test.pop(-1)
print(f"通过pop取出的下标【-1】的值是:{pop_element}, 删除后的列表元素是:{list_test}")

remove:删除某元素在列表中的第一个匹配项
语法:列表.remove(元素)
释:根据传的元素,去列表中匹配,将匹配到的第一个移除

# 定义一个列表
list_test = ["字符串元素", 666, True, 17.22, ["我是嵌套列表中的第一个元素", 888]]
print("原列表元素值:\t\t",list_test)
# remove
list_test.remove(666)
print(f"移除指定元素【666】后的列表元素是:{list_test}")

clear:清空列表
语法:列表.clear()

# 定义一个列表
list_test = ["字符串元素", 666, True, 17.22, ["我是嵌套列表中的第一个元素", 888]]
print("原列表元素值:\t",list_test)
list_test.clear()
print(f"清空列表了  :\t {list_test}")

count:统计某元素在列表中的数量
语法:列表.count(元素)

# 定义一个列表
list_test = ["字符串元素", 666, True, 17.22, 666, 666, ["我是嵌套列表中的第一个元素", 888]]
print("原列表元素值:\t",list_test)
# count
num = list_test.count(666)
print(f"666在列表中的数量为:{num}")

len:统计列表所有元素的数量
语法:len(列表)

# 定义一个列表
list_test = ["字符串元素", 666, True, 17.22, 666, 666, ["我是嵌套列表中的第一个元素", 888]]
print("原列表元素值:\t",list_test)
# len
num = len(list_test)
print(f"列表中共有【{num}】个元素")

循环遍历的两种方式:

#定义一个列表:
test_list = [21,25,21,23,22,201]
print("定义的列表为:", test_list)
"""
while 循环遍历列表元素
方式:通过下标索引的方式,将下标对应的元素值取出来,赋值给一个变量来接收,每次将下标的值+1处理,直到遍历完列表所有的元素数量
"""
# 定义一个默认下标为0的变量
index_test = 0
while index_test < len(test_list): # 当下标小于列表的长度时,进入循环,当下标大于等于列表的长度时,停止循环;
element_test = test_list[index_test]    # 通过下标索引的方式将当前下标的元素取出来,赋值给一个变量
print(f"下标{index_test}对应的元素为:{element_test}")
index_test += 1 # 将下标索引每循环一次都加 1

"""
*** for 循环遍历列表元素
方式:定义一个变量,从列表中取值
"""
print("for循环遍历:")
for element_for in test_list:
print(f"遍历列表的元素为:{element_for}")

while循环和for循环的对比
1、在循环控制上:
while循环可以自定循环条件,并自行控制;
for循环不可以自定循环条件,只可以一个个从容器中取出数据
2、在无限循环上:
while循环可以通过条件控制做到无限循环;
for循环理论上不可以,因为被遍历的容器容量不是无限的;
3、在使用场景上:
while循环适用于任何想要循环的场景;
for循环适用于,遍历数据容器的场景或简单的固定次数循环的场景;

4、什么是遍历??
将容器内的元素依次取出,并处理,称之为遍历操作

"""
*** 练习案例:取出列表中的偶数
定义一个列表,存在奇数和偶数
1、遍历列表,取出列表内的偶数,并存入一个新的列表对象中;
2、使用while循环和for循环各操作一次
"""

bl_list = [1,2,3,4,5,6,7,8,9,0]
print("使用while循环遍历列表中的偶数:")
index_bl = 0
even_number_list = []
odd_number_list = []
while index_bl < len(bl_list):
if bl_list[index_bl] % 2 == 0:
even_number = bl_list[index_bl]
even_number_list.append(bl_list[index_bl])
print(f"偶数列表元素为:{even_number_list}")
else:
odd_number = bl_list[index_bl]
odd_number_list.append(bl_list[index_bl])
print(f"奇数列表元素为:{odd_number_list}")
index_bl += 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值