Python--列表及其应用场景

news/2024/7/7 19:08:07

1.为什么需要列表

思考:有一个人的姓名(laowang)怎么书写存储程序?

用   变量。如:name = 'laowang'

但是,如果要记录很多人的名字,怎么办?

思考:

如果一个班级100位学生,每个人的姓名都要存储,应该如何书写程序?声明100个变量吗?

不可能一直写那么多,针对这种,Python设置用列表解决。列表一次可以存储多个数据。

在Python中,这种数据类型称为列表。但是在其他的编程语言中,如Java、PHP、Go等等中其被称为数组。

2.列表的定义

列表序列名称 = [列表中的元素1, 列表中的元素2, 列表中的元素3, ...]

列表序列名称也就是类似一个变量名

案例:

定义一个列表,用于保存苹果、香蕉以及菠萝

代码:


list1 = ['apple', 'banana', 'pineapple']
# list列表类型支持直接打印
print(list1)
# 打印列表的数据类型-----type   查看数据类型
print(type(list1))

注意:列表可以一次存储多个数据且可以为不同的数据类型

相关链接:Python的数据类型:Python中变量的数据类型-CSDN博客

3、列表的相关操作

列表的作用是一次性存储多个数据,程序员可以对这些数据进行的操作有:

增、删、改、查。

操作

列表在计算机中的底层存储形式,列表和字符串一样,在计算机内存中都占用一段连续的内存地址,我们向访问列表中的每个元素,都可以通过"索引下标"的方式进行获取。

如果想获取列表中的某个元素,非常简单,直接使用  索引下标

代码:


list1 = ['apple', 'banana', 'pineapple']
# 获取列表中的banana---------索引从0开始,0   1   2  3  ………………
print(list1[1])

查   操作的相关方法:

编号函数作用
1index()指定数据所在位置的下标------in  dex   在哪里
2count()统计指定数据在当前列表中出现的次数
3in判断指定数据  在   某个列表序列,如果 在  返回True,否则  不存在   就返回False
4not in判断指定数据  不在  某个列表序列,如果不在返回True,否则  不存在   返回False

index  英 /ˈɪndeks/ 

n. 索引;(物价和工资等)指数;指标,量度;幂,根指数;指针

v. 为……编索引,将……编入索引;使指数化,将(工资)等与(物价水平等)挂钩;(机器,部件)转位

count   英 /kaʊnt/   

v. (按顺序)数数;计数,点数目;把……算入,包括;重要;被允许,被接受;看作,认为

n. 计算,总数;数数;量的计数;(被指控的)罪状,事项;论点,观点;伯爵;(纱线的)支数

案例:


# 1、查找某个元素在列表中出现的位置(索引下标)----索引从0开始,0 1 2 3  ………………
list1 = ['apple', 'banana', 'pineapple']
print(list1.index('apple'))  # 0
# print(list1.index('peach'))  # 报错

# 2、count()方法:统计元素在列表中出现的次数
list2 = ['刘备', '关羽', '张飞', '关羽', '赵云']
# 统计一下关羽这个元素在列表中出现的次数
print(list2.count('关羽'))

# 3、in方法和not in方法(黑名单系统)-----如果 在  返回True,否则  不存在   就返回False
list3 = ['192.168.1.15', '10.1.1.100', '172.35.46.128']
if '10.1.1.100' in list3:
    print('黑名单IP,禁止访问')
else:
    print('正常IP,访问站点信息')

增操作

编号函数作用
1append()增加指定数据到列表中
2extend()列表结尾追加数据,如果数据是一个序列,则将这个序列的数据逐一添加到列表
3insert()指定位置新增数据
append()

append() :在列表的  尾部  追加元素

append   英 /əˈpend/   v. <正式>附加,增补


names = ['孙悟空', '唐僧', '猪八戒']
# 在列表的尾部追加一个元素"沙僧"
names.append('沙僧')
# 打印列表
print(names)

注意:列表追加数据的时候,直接在原列表里面追加了指定数据,即修改了原列表,故列表为可变类型数据。

extend()方法

列表结尾追加数据,如果数据是一个序列,则将这个序列的数据逐一添加到列表

案例:


list1 = ['Tom', 'Rose', 'Jack']
# 1、使用extend方法追加元素"Jennify"
# names.extend("Jennify")
# print(names)

# 2、建议:使用extend方法两个列表进行合并
list2 = ['Hack', 'Jennify']
list1.extend(list2)

print(list1)

总结:extend方法比较适合于两个列表进行元素的合并操作

insert()方法

作用:在指定的位置增加元素


names = ['薛宝钗', '林黛玉']
# 在薛宝钗和林黛玉之间,插入一个新元素"贾宝玉"
names.insert(1, '贾宝玉')
print(names)

删操作

编号函数作用
1del 列表[索引]删除列表中的某个元素
2pop()删除指定下标的数据(默认为最后一个),并返回该数据
3remove()移除列表中某个数据的第一个匹配项。
4clear()清空列表,删除列表中的所有元素,返回空列表。
del删除指定的列表元素

基本语法:


names = ['Tom', 'Rose', 'Jack', 'Jennify']
# 删除Rose
del names[1]
# 打印列表
print(names)

pop()方法

作用:删除指定下标的元素,如果不填写下标,默认删除最后一个。其返回结果:就是删除的这个元素


names = ['貂蝉', '吕布', '董卓']
del_name = names.pop()
# 或
# del_name = names.pop(1)
print(del_name)
print(names)

remove()方法

作用:删除匹配的元素


fruit = ['apple', 'banana', 'pineapple']
fruit.remove('banana')
print(fruit)

clear()方法

清空列表


names = ['貂蝉', '吕布', '董卓']
# 随着故事的发展,人物都game over
names.clear()
# 打印列表
print(names)

改操作

编号函数作用
1列表[索引] = 修改后的值修改列表中的某个元素
2reverse()将数据序列进行倒叙排列
3sort()对列表序列进行排序
4copy()对列表序列进行拷贝

list1 = ['貂蝉', '大乔', '小乔', '八戒']
# 修改列表中的元素
list1[3] = '周瑜'
print(list1)

list2 = [1, 2, 3, 4, 5, 6]
list2.reverse()
print(list2)

list3 = [10, 50, 20, 30, 1]
list3.sort()  # 升序(从小到大)
# 或
# list3.sort(reverse=True)  # 降序(从大到小)
print(list3)

list4 = list3.copy()
print(list4)


http://lihuaxi.xjx100.cn/news/1771625.html

相关文章

C++中的函数重载:多功能而强大的特性

引言 函数重载是C编程语言中的一项强大特性&#xff0c;它允许在同一个作用域内定义多个同名函数&#xff0c;但这些函数在参数类型、个数或顺序上有所不同。本文将深入探讨函数重载的用法&#xff0c;以及它的优势和应用场景。 正文 在C中&#xff0c;函数重载是一项非常有…

遍历List集合和Map进行修改和删除报java.util.ConcurrentModificationException错误详解

一、异常产生 当我们使用foreach迭代一个ArrayList或者HashMap时&#xff0c;如果尝试对集合做一些修改操作&#xff08;例如删除元素或新增&#xff09;&#xff0c;可能会抛出java.util.ConcurrentModificationException的异常。 javapublic static void main(String[] args)…

解决方案 |法大大电子合同推动汽车后市场多元数智化发展

近日&#xff0c;商务部等9部门联合发布《关于推动汽车后市场高质量发展的指导意见》&#xff08;以下简称《指导意见》&#xff09;&#xff0c;明确了汽车后市场发展的总体目标和主要任务&#xff0c;系统部署推动汽车后市场高质量发展&#xff0c;促进汽车后市场规模稳步增长…

【使用python绘制统计图表】

在Python中&#xff0c;我们通常使用matplotlib&#xff0c;pandas&#xff0c;和seaborn等库来绘制统计图表。 A.以下是一些示例&#xff1a; 首先&#xff0c;确保你已经安装了这些库。如果没有&#xff0c;可以使用以下命令进行安装&#xff1a; pip install matplotlib …

浅谈插接母线温度在线监测系统研究与应用-安科瑞黄安南

摘要 低压封闭式插接母线是供配电设施的关键部件&#xff0c;安装在生产车间内部高空&#xff0c;不易保养和维护&#xff0c;在安装不良或保养不当时易发生故障。插接点温度的异常变化与母线故障的发生有着密切的关系&#xff0c;以汽车整车制造工厂为例&#xff0c;提出母线接…

蓝桥杯国一,非ACMer选手保姆级经验分享

目录 一、前言二、蓝桥杯简介三、0基础计算机新手小白&#xff0c;赛前如何准备提高自己的获奖率&#xff1f;3.1 每两周参加一次【蓝桥算法双周赛】3.2 多练真题3.3 参加每一场官方校内模拟赛 四、结语 一、前言 hello&#xff0c;大家好&#xff0c;我是大赛哥(弟)&#xff…

Jmeter 性能压测 —— 混合场景

性能测试&#xff0c;单场景的目的一般是为了发现缺陷、发现瓶颈。 完成所有单个重点场景的性能测试之后&#xff0c;还需要做一个混合场景的性能测试-评估系统整体性能。 1、场景设计 使用Jmeter 做混合场景设计 在一个测试计划&#xff0c;将每个重点测试场景各创建为一个…

中级经济师各专业通过率是多少

中级经济师整体通过率在15%左右&#xff0c;其中人力资源专业通过率37%左右&#xff0c;工商管理通过率25%左右&#xff0c;金融专业通过率16%&#xff0c;其他专业通过率比较低&#xff0c;这三个专业占到总合格人数的75%左右。通过率不高&#xff0c;很大原因是考试题目综合性…