当前位置: 首页 > news >正文

python-基础篇-字符串、列表、元祖、字典-列表

文章目录

      • 2.3.2列表
        • 2.3.2.1列表介绍
          • 2.3.2.1.1列表的格式
          • 2.3.2.1.2打印列表
        • 2.3.2.2列表的增删改查
          • 2.3.2.2.1列表的遍历
          • 2.3.2.2.1.1使用for循环
            • 2.3.2.2.1.2使用while循环
          • 2.3.2.2.2添加元素("增"append, extend, insert)
            • 2.3.2.2.2.1append
          • 2.3.2.2.2.2extend
            • 2.3.2.2.2.3extend
          • 2.3.2.2.3删除元素("删"del, pop, remove)
            • 2.3.2.2.3.1del
            • 2.3.2.2.3.2pop
            • 2.3.2.2.3.3remove
          • 2.3.2.2.4修改元素("改")
          • 2.3.2.2.5查找元素("查"in, not in, index, count)
          • 2.3.2.2.5.1in, not in
            • 2.3.2.2.5.2index, count
          • 2.3.2.2.6排序(sort, reverse)
        • 2.3.2.3列表的嵌套
          • 2.3.2.3.1 1. 列表嵌套
          • 2.3.2.3.2 2. 应用
        • 2.3.2.4列表应用

2.3.2列表

2.3.2.1列表介绍

可以理解为java、c语言中的数组。只是python中可以存放不同的数据类型。
列表就是一个变量存储多个值。

2.3.2.1.1列表的格式

变量A的类型为列表
namesList = [‘xiaoWang’,‘xiaoZhang’,‘xiaoHua’]
比C语言的数组强大的地方在于列表中的元素可以是不同类型的
testList = [1, ‘a’]

2.3.2.1.2打印列表
    namesList = ['xiaoWang','xiaoZhang','xiaoHua']print(namesList[0])print(namesList[1])print(namesList[2])
结果:xiaoWangxiaoZhangxiaoHua
2.3.2.2列表的增删改查
2.3.2.2.1列表的遍历
2.3.2.2.1.1使用for循环

为了更有效率的输出列表的每个数据,可以使用循环来完成

    namesList = ['xiaoWang','xiaoZhang','xiaoHua']for name in namesList:print(name)
结果:xiaoWangxiaoZhangxiaoHua
2.3.2.2.1.2使用while循环

为了更有效率的输出列表的每个数据,可以使用循环来完成

    namesList = ['xiaoWang','xiaoZhang','xiaoHua']length = len(namesList)i = 0while i<length:print(namesList[i])i+=1
结果:xiaoWangxiaoZhangxiaoHua
2.3.2.2.2添加元素("增"append, extend, insert)
2.3.2.2.2.1append

通过append可以向列表添加元素(在列表后面追加)

# Author:csz
# 定义变量A,默认有3个元素
names = ['老王', '老李', '老刘']print("-----添加之前,列表A的数据-----")
for tempName in names:print("\t%s"%tempName,end='')
print("")
# 提示、并添加元素
temp = input('请输入要添加的学生姓名:')
names.append(temp)print("-----添加之后,列表A的数据-----")
for tempName in names:print("\t%s" % tempName, end='')

结果:

在这里插入图片描述

注意
在这里插入图片描述

None在python中为空值

2.3.2.2.2.2extend

通过extend可以将另一个集合中的元素逐一添加到列表中

# Author:csz
# 定义变量A,默认有3个元素
names = ['老王', '老李', '老刘']print("-----添加之前,列表A的数据-----")
for tempName in names:print("\t%s"%tempName,end='')
print("")
# 提示、并添加元素
temp = input('请输入要添加的学生姓名:')
names.insert(1,temp)
names.insert(0,temp)
print("-----添加之后,列表names的数据-----")
for tempName in names:print("\t%s" % tempName, end='')
print("")
temp = input('请输入要添加的学生姓名:')
names.insert(0,temp)
print("-----添加之后,列表names的数据-----")
for tempName in names:print("\t%s" % tempName, end='')

结果:

在这里插入图片描述

2.3.2.2.2.3extend

通过extend可以将另一个集合中的元素逐一添加到列表中.
与字符串一样,列表的拼接也可以用“+”实现。
在这里插入图片描述

2.3.2.2.3删除元素("删"del, pop, remove)

类比现实生活中,如果某位同学调班了,那么就应该把这个条走后的学生的姓名删除掉;在开发中经常会用到删除这种功能。
列表元素的常用删除方法有:
del:根据下标进行删除
pop:删除最后一个元素
remove:根据元素的值进行删除

2.3.2.2.3.1del
movieName = ['加勒比海盗', '骇客帝国', '第一滴血', '指环王', '霍比特人', '速度与激情']print('------删除之前------')
for tempName in movieName:print(tempName)del movieName[2]print('------删除之后------')
for tempName in movieName:print(tempName)
结果:------删除之前------加勒比海盗骇客帝国第一滴血指环王霍比特人速度与激情------删除之后------加勒比海盗骇客帝国指环王霍比特人速度与激情
2.3.2.2.3.2pop
movieName = ['加勒比海盗', '骇客帝国', '第一滴血', '指环王', '霍比特人', '速度与激情']print('------删除之前------')
for tempName in movieName:print(tempName)movieName.pop()print('------删除之后------')
for tempName in movieName:print(tempName)
结果:
------删除之前------
加勒比海盗
骇客帝国
第一滴血
指环王
霍比特人
速度与激情
------删除之后------
加勒比海盗
骇客帝国
第一滴血
指环王
霍比特人
2.3.2.2.3.3remove
movieName = ['加勒比海盗', '指环王','骇客帝国', '第一滴血', '指环王', '霍比特人', '速度与激情']print('------删除之前------')
for tempName in movieName:print(tempName)movieName.remove('指环王')print('------删除之后------')
for tempName in movieName:print(tempName)
结果:
------删除之前------
加勒比海盗
指环王
骇客帝国
第一滴血
指环王
霍比特人
速度与激情
------删除之后------
加勒比海盗
骇客帝国
第一滴血
指环王
霍比特人
速度与激情
2.3.2.2.4修改元素(“改”)

修改元素的时候,要通过下标来确定要修改的是哪个元素,然后才能进行修改
在这里插入图片描述

2.3.2.2.5查找元素("查"in, not in, index, count)

所谓的查找,就是看看指定的元素是否存在

2.3.2.2.5.1in, not in

python中查找的常用方法为:
in(存在),如果存在那么结果为true,否则为false
not in(不存在),如果不存在那么结果为true,否则false

# 待查找的列表
nameList = ['xiaoWang', 'xiaoZhang', 'xiaoHua']# 获取用户要查找的名字
findName = input('请输入要查找的姓名:')# 查找是否存在
if findName in nameList:print('在字典中找到了相同的名字')
else:print('没有找到')

结果:

在这里插入图片描述

2.3.2.2.5.2index, count

index和count与字符串中的用法相同

>>> a = ['a', 'b', 'c', 'a', 'b']
>>> a.index('a', 1, 3) # 注意是左闭右开区间
Traceback (most recent call last):File "<stdin>", line 1, in <module>
ValueError: 'a' is not in list
>>> a.index('a', 1, 4)
3
>>> a.count('b')
2
>>> a.count('d')
0
2.3.2.2.6排序(sort, reverse)

sort方法是将list按特定顺序重新排列,默认为由小到大,参数reverse=True可改为倒序,由大到小。
reverse方法是将list逆置。

>>> a = [1, 4, 2, 3]
>>> a
[1, 4, 2, 3]
>>> a.reverse()
>>> a
[3, 2, 4, 1]
>>> a.sort()
>>> a
[1, 2, 3, 4]
>>> a.sort(reverse=True)
>>> a
[4, 3, 2, 1]
2.3.2.3列表的嵌套
2.3.2.3.1 1. 列表嵌套

类似while循环的嵌套,列表也是支持嵌套的
一个列表中的元素又是一个列表,那么这就是列表的嵌套

    schoolNames = [['北京大学','清华大学'],['南开大学','天津大学','天津师范大学'],['山东大学','中国海洋大学']] 
2.3.2.3.2 2. 应用

一个学校,有3个办公室,现在有8位老师等待工位的分配,请编写程序,完成随机的分配

#encoding=utf-8import random# 定义一个列表用来保存3个办公室
offices = [[],[],[]]# 定义一个列表用来存储8位老师的名字
names = ['A','B','C','D','E','F','G','H']i = 0
for name in names:index = random.randint(0,2)    offices[index].append(name)i = 1
for tempNames in offices:print('办公室%d的人数为:%d'%(i,len(tempNames)))i+=1for name in tempNames:print("%s"%name,end='')print("\n")print("-"*20)

结果:

在这里插入图片描述在这里插入图片描述

2.3.2.4列表应用
# Author:csz
#打印功能提示区
print("="*50)
print("名字关系系统v8.6".center(30))
print("1. 添加一个新名字".center(30))
print("2. 删除一个名字".center(30))
print("3. 修改一个名字".center(30))
print("4. 查询一个名字".center(30))
print("5. 查询所有名字".center(30))
print("6. 退出")
print("="*50)names = []#编写功能执行区
while True:# 获取用户输入的功能选择num = int(input("请输入功能序号:"))if num==1:name = input("请输入需要添加的名字:")names.append(name)print(names)elif num==2:name = input("请输入需要删除的名字:")names.remove(name)elif num==3:name = input("请输入需要修改的名字:")name_update = input("请输入修改后的名字:")names_index = names.index(name)names[ names_index] = name_updateelif num==4:name = input("请输入需要查询的名字的名字:")if name in names:print("找到了你要找的人!")else:print("查无此人!")elif num==5:for name in names:print("%s\t"%name,end="")print("")elif num==6:breakelse:print("您输入有误,请重新输入!")
结果:
==================================================名字关系系统v8.6          1. 添加一个新名字          2. 删除一个名字           3. 修改一个名字           4. 查询一个名字           5. 查询所有名字           
6. 退出
==================================================
请输入功能序号:1
请输入需要添加的名字:qq
['qq']
请输入功能序号:1
请输入需要添加的名字:ww
['qq', 'ww']
请输入功能序号:1
请输入需要添加的名字:ee
['qq', 'ww', 'ee']
请输入功能序号:3
请输入需要修改的名字:ee
请输入修改后的名字:rr
请输入功能序号:5
qq	ww	rr	
请输入功能序号:6

相关文章:

python-基础篇-字符串、列表、元祖、字典-列表

文章目录 2.3.2列表2.3.2.1列表介绍2.3.2.1.1列表的格式2.3.2.1.2打印列表 2.3.2.2列表的增删改查2.3.2.2.1列表的遍历2.3.2.2.1.1使用for循环2.3.2.2.1.2使用while循环 2.3.2.2.2添加元素("增"append, extend, insert)2.3.2.2.2.1append 2.3.2.2.2.2extend2.3.2.2.2…...

Qt控件样式设置其一(常见方法及优缺点)

如果你对Qt有基本的了解&#xff0c;应该知道它的一大优点是跨平台&#xff0c;可以在不同的系统中编译运行。但在我看来&#xff0c;Qt还有另外一个优点&#xff0c;就是制作界面比较方便和灵活&#xff0c;能够实现主流静态效果的桌面应用。&#xff08;如果需要实现比较灵动…...

软件测试(测试用例详解)(三)

1. 测试用例的概念 测试用例&#xff08;Test Case&#xff09;是为了实施测试而向被测试的系统提供的一组集合。 测试环境操作步骤测试数据预取结果 测试用例的评价标准&#xff1a; 用例表达清楚&#xff0c;无二义性。。用例可操作性强。用例的输入与输出明确。一条用例只有…...

最优算法100例之33-字符串/数字的排列组合问题

专栏主页:计算机专业基础知识总结(适用于期末复习考研刷题求职面试)系列文章https://blog.csdn.net/seeker1994/category_12585732.html 题目描述 字符串/数字的排列组合问题 void dfs(int deep){if(deep == n){//输出}for(int i = 0; i < n; i++){if(flag[i] == 0){d[d…...

Java面试题:请解释Java中的多线程编程?

Java中的多线程编程允许 concurrently 执行多个线程&#xff0c;从而可以同时执行多个任务&#xff0c;提高程序的效率和响应性。在Java中&#xff0c;线程可以通过以下两种主要方式来实现&#xff1a; 继承 Thread 类实现 Runnable 接口 继承 Thread 类 class MyThread ext…...

acwing算法提高之图论--最小生成树的扩展应用

目录 1 介绍2 训练 1 介绍 本专题用来记录使用最小生成树算法&#xff08;prim或kruskal&#xff09;解决的扩展题目。 2 训练 题目1&#xff1a;1146新的开始 C代码如下&#xff0c; #include <iostream> #include <cstring> #include <algorithm>usin…...

政安晨:【Keras机器学习实践要点】(十七)—— 利用 EfficientNet 通过微调进行图像分类

政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras机器学习实战 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff01; 本文目标&#xff1a; 使用 EfficientNet 和在图…...

wordpress全站开发指南-面向开发者及深度用户(全中文实操)--php函数

php函数 wordpress会封装一部分函数&#xff0c;比如bloginfo该函数的作用是直接调用你设置的你的网站的名称 示例 This is our amazing custom theme <?php echo 22; function myfirstfunction(){ echo 33; echo "<p>Hello ,this is my first function</…...

Linux 设备驱动管理之内核对象(Kernel Object)机制

Linux 设备驱动管理之内核对象(Kernel Object)机制 Linux内核是一个复杂的系统&#xff0c;它通过一系列的机制和结构体来管理和表示系统中的资源。其中一个关键的概念是“内核对象”&#xff08;Kernel Object&#xff0c;简称kobject&#xff09;。本文将深入探讨kobject机制…...

【C语言】关键字选择题

前言 题目一&#xff1a; 题目二&#xff1a; 题目三&#xff1a; 题目四&#xff1a; 题目五&#xff1a; 题目六&#xff1a; 前言 关于C语言关键字相关的选择题 题目一&#xff1a; 用在switch语言中的关键字不包含哪个&#xff1f;( ) A .continue B .break C .defa…...

营销中的归因人工智能

Attribution AI in marketing 归因人工智能作为智能服务的一部分&#xff0c;是一种多渠道算法归因服务&#xff0c;根据特定结果计算客户互动的影响和增量影响。有了归因人工智能&#xff0c;营销人员可以通过了解每个客户互动对客户旅程每个阶段的影响来衡量和优化营销和广告…...

ChatGPT 的核心 GPT 模型:探究其生成式预训练变换架构的革新与应用潜力

GPT&#xff08;Generative Pre-trained Transformer&#xff09;模型是一种深度学习模型&#xff0c;由OpenAI于2018年首次提出&#xff0c;并在随后的几年中不断迭代发展&#xff0c;包括GPT-2、GPT-3以及最新的GPT-4。GPT模型在自然语言处理&#xff08;NLP&#xff09;领域…...

Python | Leetcode Python题解之第10题正则表达式匹配

题目&#xff1a; 题解&#xff1a; class Solution:def isMatch(self, s: str, p: str) -> bool:m, n len(s), len(p)dp [False] * (n1)# 初始化dp[0] Truefor j in range(1, n1):if p[j-1] *:dp[j] dp[j-2]# 状态更新for i in range(1, m1):dp2 [False] * (n1) …...

华大单片机新建工程步骤

1.新建文件夹&#xff0c;比如00_LED 2.拷贝 hc32f460_ddl_Rev2.2.0\driver 到 00_LED 3.拷贝 hc32f460_ddl_Rev2.2.0\mcu\common 到 00_LED 4.拷贝 hc32f460_ddl_Rev2.2.0\example\ev_hc32f460_lqfp100_v2\gpio\gpio_output\source 到 00_LED 5.拷贝 hc32f460_ddl_Rev2.2.…...

设计模式:桥接模式

定义 桥接模式(Bridge Pattern)是一种结构型设计模式,它将抽象与实现分离,使它们可以独立地变化。在桥接模式中,抽象部分(Abstraction)包含对实现部分(Implementor)的引用,实现部分可以通过接口中的方法被抽象部分使用,但是具体的实现细节对于抽象部分来说是隐藏的…...

人脸识别:Arcface--loss+code

之前只接触过传统方法的人脸识别算法&#xff0c;本以为基于深度学习的方法会使用对比损失之类的函数进行训练&#xff0c;但是Arcface算法基于softmax进行了创新&#xff0c;本文未深究其详细的loss公式原理&#xff0c;在大致明白其方向下&#xff0c;运行了代码&#xff0c;…...

Linux-程序地址空间

目录 1. 程序地址空间分布 2. 两个问题 3. 虚拟地址和物理地址 4. 页表 5. 解决问题 6. 为什么要有地址空间 1. 程序地址空间分布 测试一下&#xff1a; #include<stdio.h> #include<stdlib.h> #include<unistd.h> #include<sys/types.h>int ga…...

adobe stock会员开通付费付款订阅充值教程/adobe stock免费白嫖一个月

登录adobe stock的官网&#xff0c;点击你想要下载的视频&#xff0c;然后点击免费下载&#xff0c;我们点击免费试用按钮&#xff0c;可以看到非常贵&#xff0c;需要80美金一个月&#xff0c;用fomepay可以免费白嫖一个月 点击获取一张虚拟信用卡&#xff0c;就可以白嫖一个…...

Mysql的基本命令

1 服务相关命令 命令描述systemctl status mysql查看MySQL服务的状态systemctl stop mysql停止MySQL服务systemctl start mysql启动MySQL服务systemctl restart mysql重启MySQL服务ps -ef | grep mysql查看mysql的进程mysql -uroot -hlocalhost -p123456登录MySQLhelp显示MySQ…...

leetcode.24. 两两交换链表中的节点

题目 给定一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后的链表。 你不能只是单纯的改变节点内部的值&#xff0c;而是需要实际的进行节点交换。 思路 创建虚拟头节点&#xff0c;画图&#xff0c;确认步骤。 实现 /*** Definition for singly-li…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

C++八股 —— 单例模式

文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全&#xff08;Thread Safety&#xff09; 线程安全是指在多线程环境下&#xff0c;某个函数、类或代码片段能够被多个线程同时调用时&#xff0c;仍能保证数据的一致性和逻辑的正确性&#xf…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持&#xff0c;都是在为未来积攒底气。 案例&#xff1a;OLED显示一个A 这边观察到一个点&#xff0c;怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 &#xff1a; 如果代码里信号切换太快&#xff08;比如 SDA 刚变&#xff0c;SCL 立刻变&#…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程&#xff1a;如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket&#xff08;服务端和客户端都要&#xff09;2. 绑定本地地址和端口&#x…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中&#xff0c;其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下&#xff1a; 初始判断与哈希计算&#xff1a; 首先&#xff0c;putVal 方法会检查当前的 table&#xff08;也就…...

git: early EOF

macOS报错&#xff1a; Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...

flow_controllers

关键点&#xff1a; 流控制器类型&#xff1a; 同步&#xff08;Sync&#xff09;&#xff1a;发布操作会阻塞&#xff0c;直到数据被确认发送。异步&#xff08;Async&#xff09;&#xff1a;发布操作非阻塞&#xff0c;数据发送由后台线程处理。纯同步&#xff08;PureSync…...

java+webstock

maven依赖 <dependency><groupId>org.java-websocket</groupId><artifactId>Java-WebSocket</artifactId><version>1.3.5</version></dependency><dependency><groupId>org.apache.tomcat.websocket</groupId&…...