python之列表

1.概述

线性的数据结构

有序的队列,可以使用下标进行索引

可变的序列

列表中的个体称为元素,多个元素组成列表

列表的语法是[],多个元素使用逗号分隔

列表中的元素类型可以不同

2.定义列表

 使用【】方法,多个元素之间使用逗号进行分隔

使用list()函数

可以将元组、字符串、range对象所有迭代的数据结构转换为列表

3.删除列表

使用del删除

删除之后会抛出异常

 4.访问列表

1.访问元素

列表[下标]

2.修改元素

列表[下标] = 赋的值

3.len()获取列表的长度

用法:len(列表对象)

4.count()统计指定元素出现的次数

用法: 列表对象.count()  

5.index()  指定元素的下标索引值

用法: 列表对象.index() 

语法格式:index(元素值:起点:终点)

5.遍历列表

 对列表中的每一个元素执行一次访问

1.while 语句

语法格式

i =0 

while i < len(列表对象):

        代码块处理

        i += 1

使用whlie()遍历,将小写字母转换为大写字母
l = ["p","y","t","h","o","n"]
i = 0
while i < len(l):
    #遍历列表l的每一个元素
    l[i] = l[i].upper()
    i += 1
print(l)

2.for 语句(如果两个值相同,则遍历的是第一个)

语句格式

for  i  in  列表对象:

        代码块

使用for()遍历,将小写字母转换为大写字母
l = ["p","y","t","h","o","n"]
for i in l:
    l[l.index(i)] = i.upper()
print(l)

3.enumerate()

可以将一个可迭代的对象组合为一个索引的对象

语法格式:

enumerate(列表对象,起点)

l = ["p","y","t","t","o","n"]
for index,value in enumerate(l):
    print(index,value)
    l[index] = value.upper()
print(l)

6.添加元素

1.append()

可以在当前列表对象尾部添加元素,仅修改原列表对象。

语法格式:

        列表对象.append(obj)

l = [1,2,3,4,5,6,7]
l.append(89)
print(l)

2.extend()

可以在当前列表对象的尾部添加一个可迭代的列表对象,仅修改原来的列表对象

语法格式:

        列表对象.extend(obj)

l1 = [1,2,3,4,5,6,7]
l2 = [5,56,7,8,9,10]
l1.extend(l2)
print(l1)

3.insert()

可以在当前列表对象的指定下标位置插入对象,仅修改原来的列表对象

语法格式:

        列表对象.insert(index,obj)

l1 = [1,2,3,4,5,6,7]
print(id(l1))
l1.insert(4,666)
print(id(l1))
print(l1)

注:

如果insert()超出索引范围,不会触发异常。

如果是正索引,超出索引范围,等价于append()

如果是负索引,超出索引范围,等价于insert(0,obj)

4.+运算符

合并列表,产生新的列表对象

l1 = [1,2,3,4,5,6,7]
l2 = [2,3,4,5,6,8,9,8,9]
print(l1+l2)

5.*运算符

重复列表并合并,产生新的列表对象

7.删除元素

1.del语句

语法格式

        del  列表对象[下标]

删除第四位数
l1 = [1,2,3,4,5,6,7]
del l1[3]
print(l1)

2.pop语句

可以删除指定位置的元素,并返回删除后的结果

可在原列表对象进行操作

语法格式:

        删除的元素=列表对象.pop(下标)   下标默认为-1

l1 = [1,2,3,4,5,6,7]
n = l1.pop(2)
print(l1)
print(n)

3.remove语句

可以删除指定值的元素,在原列表对象进行操作

语法格式

        列表对象.remove(元素的值)

删除列表中首次出现的那个值的元素,如果删除列表中不存在值的元素,则抛出异常

删掉值为三的元素
l1 = [1,2,3,3,3,34,5,6,7]
for i in l1:
    if 3 == i:
        l1.remove(i)
print(l1)

当出现多个值相同时会出错

可以使用切片的方法避免这个问题

8.检测元素

in      not  in 

过滤元素是否在列表中,如果不在则添加到列表中

l1 = [1,2,3,4,5,6,7]
l2 = []
for  i in l1:
    if i not in l2:
        l2.append(i)
print(l2)

9.切片操作

基本语法:

[起点:终点:步长]

切片赋值,只能通过序列,否则会抛出异常

1.使用切片读取元素
返回所有元素的新列表
l = list(range(10))
print(l)
#返回包含所有元素的新列表
print(l[::])

反序读取所有元素
l = list(range(10))
print(l)
print(l[::-1])

读取偶数位元素(步长为2)
l = list(range(10))
print(l)
print(l[::2])

读取奇数位元素(第二个元素开始,步长为2)
l = list(range(10))
print(l)
print(l[1::2])

读取从下标三开始的所有元素
l = list(range(10))
print(l)
print(l[3::])

读取下标三到六之间所有的元素
l = list(range(10))
print(l)
print(l[3:6])
读取前一百个数
l = list(range(10))
print(l)
print(l[0:100:1])

读取100之后的元素
l = list(range(10))
print(l)
print(l[100::])

2.使用切片修改列表
在尾部追加元素
l = list(range(10))
print(l)
l[len(l):] = [3]
替换前三个元素
l = list(range(10))
print(l)
l[:3] = [1,2,3]
print(l)

删除前三个元素
l = list(range(10))
print(l)
l[:3] = []
print(l)

使用0替换偶数位元素
l = list(range(10))
print(l)
l[::2] = [0]*5
print(l)

3.使用切片删除元素
删除前三位元素
l = list(range(10))
print(l)
del l[:3]
print(l)

10.复制列表

使用切片生成新的列表副本,副本与原列表值相同,但是地址不同

包含浅复制和深复制

浅复制:生成一个新的列表,并把原列表的值复制给新的列表

深复制:使用copy模块

浅复制
import copy
x = [1,12,[3,4]]
y = copy.copy(x)
x[0] = 3
print(x)
print(y)
x[2].append(9)
print(x)
print(y)

深复制
import copy
x = [1,12,[3,4]]
y = copy.deepcopy(x)
x[0] = 3
print(x)
print(y)
x[2].append(9)
print(x)
print(y)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/763684.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【单片机毕业设计选题24042】-基于无线传输的老人健康监护系统

系统功能: 系统操作说明&#xff1a; 上电后OLED显示 “欢迎使用健康监护系统请稍后”&#xff0c;两秒后显示Connecting...表示 正在连接阿里云&#xff0c;正常连接阿里云后显示第一页面&#xff0c;如长时间显示Connecting...请 检查WiFi网络是否正确。 第一页面第一行…

机器人入门路线及参考资料(机器人操作方向)

机器人&#xff08;操作方向&#xff09;入门路线及参考资料 前言1 数理基础和编程2 机器人学理论3 计算机视觉4 机器人实操5 专攻方向总结Reference: 前言 随着机器人和具身智能时代的到来&#xff0c;机器人越来越受到大家的重视&#xff0c;本文就介绍了机器人&#xff08;…

方正小标宋简体、仿宋GB2312、楷体GB2312字体

文章目录 下载地址所有的文件wps使用方正小标宋简体、仿宋GB2312、楷体GB2312 字体用途方正小标宋简体仿宋GB2312楷体GB2312 下载地址 【金山文档 | WPS云文档】 方正小标宋简体、仿宋GB2312、楷体GB2312 https://kdocs.cn/l/cksgHDLneqDk 所有的文件 wps使用 方正小标宋简体…

一场前端框架的“武林大会”,三大主流框架之间的性能比较!!!

大家好,我是CodeQi! 在前端开发的江湖中,Vue.js、React 和 Angular 可谓是三大门派,个个身怀绝技,堪称“武林三杰”。 我,作为一名勤奋的代码侠士,决定深入研究这三大门派的奥义,探讨它们在性能方面的表现。且听我细细道来。 什么是 Vue? Vue.js 是由尤雨溪创建的前…

【Python机器学习】模型评估与改进——打乱划分交叉验证

打乱划分交叉验证是一种非常灵活的交叉验证策略。 在打乱划分交叉验证中&#xff0c;每次划分为训练集取样train_size个点&#xff0c;为测试集取样test_size个不相交的点。将这一划分方法重复n_iter次。 举例&#xff1a; import matplotlib.pyplot as plt import mglearnm…

2007年上半年软件设计师【上午题】试题及答案

文章目录 2007年上半年软件设计师上午题--试题2007年上半年软件设计师上午题--答案2007年上半年软件设计师上午题–试题

高优先线程

你开发的时候有么有遇到过一个问题&#xff1a;服务器的一个服务线程过几个小时断连一次&#xff0c;断连之后会马上重连这种情况。这是由于CPU负载较高,线程调度时将处理数据的线程挂起了一段时间导致的。 因此&#xff0c;我有考虑到把cpu的核心进行分散开来&#xff0c;就类…

【stm32】大一上学期笔记复制

砌墙单片机 外设是什么&#xff1f; ipage 8 nx轴 128 X0-127 y0-63 PWM脉冲宽度调制 PWM脉冲宽度调制 2023年10月13日 基本特性&#xff1a;脉冲宽度调制PWM是一种对模拟信号进行数字编码的方法。广泛引用于电机控制&#xff0c;灯光的亮度调节&#xff0c;功率控制等领域…

【C++】——【 STL简介】——【详细讲解】

目录 ​编辑 1. 什么是STL 2. STL的版本 3. STL的六大组件 1.容器(Container)&#xff1a; 2.算法(Algorithm)&#xff1a; 3.迭代器(Iterator)&#xff1a; 4.函数(Function)&#xff1a; 5.适配器(Adapter)&#xff1a; 6.分配器(Allocator)&#xff1a; 4. STL的…

Java开发者如何使用RunFlow内置的QLExpress

原文发表于 solo独立开发者社区《Java开发者如何使用RunFlow内置的QLExpress》 效率工具RunFlow完全手册之Java开发者篇 本文是为Java开发者写的手册&#xff0c;如果您不是Java开发者可以阅读我们的开发者篇手册&#xff0c;当然如果您感兴趣也可以继续阅读。 输入 qe 进入QL…

2024年注册安全工程师报名详细流程

一、用户注册 1.1全国专业技术人员资格考试报名服务平台 注册登录网址http://zg.cpta.com.cn/examfront/login/initLogin.html 1.2填写资料 1.3进入照片维护&#xff0c;上传证件照。 需要使用【照片审核处理工具】 将照片处理成符合要求的大小格式。 ①下载照片处理工具http:/…

CTFHUB-SSRF-FastCGI协议

本题需要用到&#xff1a; 在线编码网址&#xff1a;https://icyberchef.com/ gopherus工具&#xff1a;https://mp.csdn.net/mp_blog/creation/editor/139440201 开启题目&#xff0c;页面空白 使用gopherus工具&#xff0c;进入到gopherus工具目录 ./gopherus.py --explo…

【软件测试】 性能测试 JMeter脚本开发!

一、JMeter脚本开发实战 实例&#xff1a;查询一个城市的天气预报 使用抓包工具观察请求所产生的请求列表&#xff0c;筛选最核心API。 A、获取城市代码 http://toy1.weather.com.cn/search?cityname西安 B、获取天气 http://www.weather.com.cn/weather1d/101110101.sht…

【学习笔记】Redis学习笔记——第5章 跳跃表

第5章 跳跃表 有序集合&#xff0c;ZSet关键组成部分&#xff0c;时间复杂度媲美平衡树&#xff0c;且实现简单。 5.1 跳跃表的实现 可以简单理解为每个节点会有一些指向后面跨越N个节点的指针&#xff0c;比如说Node1不仅有指向Node2的指针&#xff0c;还可以有Node5的&…

尚硅谷k8s 2

p54-56 k8s核心实战 service服务发现 Service:将一组 Pods 公开为网络服务的抽象方法。 #暴露Deploy,暴露deploy会出现在svc kubectl expose deployment my-dep --port8000 --target-port80#使用标签检索Pod kubectl get pod -l appmy-depapiVersion: v1 kind: Service metad…

使用Python实现钉钉Stream模式服务开发及内部程序通信

1、什么是Stream模式 Stream 模式是钉钉开放平台提供的一种集成方式&#xff0c;它可以监听机器人回调、事件订阅回调和注册卡片回调。使用 Stream 模式接入&#xff0c;钉钉开放平台将通过 Websocket 连接与应用程序通讯&#xff0c;Stream 模式将极大降低接入门槛和资源依赖…

Android- Framework 非Root权限实现修改hosts

一、背景 修改system/etc/hosts&#xff0c;需要具备root权限&#xff0c;而且remount后&#xff0c;才能修改&#xff0c;本文介绍非root状态下修改system/etc/hosts方案。 环境&#xff1a;高通 Android 13 二、方案 非root&#xff0c;system/etc/hosts只有只读权限&…

工业智能网关的功能特点有哪些?工业智能网关在工业企业的应用-天拓四方

随着工业4.0时代的到来&#xff0c;数字化转型已成为工业企业提升竞争力、实现可持续发展的必经之路。在这一过程中&#xff0c;工业智能网关以其强大的连接、数据处理和安全防护能力&#xff0c;成为推动工业数字化转型的关键力量。本文将深入探讨工业智能网关的功能特点、应用…

基于Java中的SSM框架实现大学生就业预测系统项目【项目源码+论文说明】计算机毕业设计

基于Java中的SSM框架实现大学生就业预测系统演示 摘要 科技不断飞速发展&#xff0c;人类文明走向一个又一个的高峰。在科技进步的浪潮中&#xff0c;计算机技术得到了巨大的发展&#xff0c;随着技术的完善&#xff0c;生产成本的降低&#xff0c;计算机走进千家万户。计算机…

API-Window对象

学习目标&#xff1a; 掌握Window对象 学习内容&#xff1a; BOM&#xff08;浏览器对象模型&#xff09;定时器-延时函数JS执行机制location对象navigation对象history对象 BOM&#xff08;浏览器对象模型&#xff09;&#xff1a; BOM是浏览器对象模型。 window对象是一个全…