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])
结果:
    xiaoWang
    xiaoZhang
    xiaoHua
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)
结果:
    xiaoWang
    xiaoZhang
    xiaoHua
2.3.2.2.1.2使用while循环

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

    namesList = ['xiaoWang','xiaoZhang','xiaoHua']

    length = len(namesList)

    i = 0

    while i<length:
        print(namesList[i])
        i+=1
结果:
    xiaoWang
    xiaoZhang
    xiaoHua
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-8

import 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+=1
    for 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_update
    elif 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:
        break
    else:
        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

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

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

相关文章

博客搭建(hexo+github)

简介 搭建完成网站的如下所示 https://polarday.top/ 使用github托管博客&#xff0c;完全免费不需要购买服务器 博客框架&#xff1a;hexo hexo主题&#xff1a;ICARUS 图床&#xff1a;githubPicGo 编辑&#xff1a;vscode 为什么使用hexo框架&#xff1f;因为hexo是静态框…

新手开抖店:选品过后如何有效对接达人?这些方法100%有效!

哈喽~我是电商月月 要说做抖音小店最主要的是什么&#xff1f;那当然是找品了 那出单最快的方法是什么&#xff1f;无疑是达人带货了&#xff01; 但新手店铺没销量&#xff0c;没体验分&#xff0c;没好评怎么能让达人同意帮我们带货呢&#xff1f; 方法其实很简单&#x…

上位机图像处理和嵌入式模块部署(qmacvisual之plc通信)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 传统的非标自动化设备当中&#xff0c;plc发挥了很大的作用。这里面如何对这些电机和机构进行控制&#xff0c;大多数场景下用的就是plc设备了。目…

常用的AI绘画自动生成器介绍

AI绘画自动生成器是一种利用人工智能技术生成图像的工具。它可以根据用户输入的文本描述自动生成相应的图像。目前,有几种流行的AI绘画自动生成器,包括: 1. **DALL-E 2** DALL-E 2是由OpenAI开发的AI绘画生成器,它可以根据用户输入的自然语言描述生成高质量的图像。DALL-E 2使…

上位机图像处理和嵌入式模块部署(qmacvisual之tcp服务器端)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 上面一篇&#xff0c;我们谈到了tcp客户端&#xff0c;另外一种连接方法就是tcp服务器端。事实上&#xff0c;对于第三方系统&#xff0c;大多数情…

解析Apache Kafka:在大数据体系中的基本概念和核心组件

关联阅读博客文章&#xff1a;探讨在大数据体系中API的通信机制与工作原理 关联阅读博客文章&#xff1a;深入解析大数据体系中的ETL工作原理及常见组件 关联阅读博客文章&#xff1a;深度剖析&#xff1a;计算机集群在大数据体系中的关键角色和技术要点 关联阅读博客文章&a…

账号和权限管理

一、账号 1.用户的类型 1.超级管理&#xff1a;权限最高的用户 2.普通用户&#xff1a;权限受到限制的用户 3.程序用户&#xff1a;不是给人登录使用的&#xff0c;给程序使用的&#xff0c;这些用户一般不允许登录到系统&#xff0c;一般是为了支持程序运行(超级管理员和普…

C语言中的结构体:揭秘数据的魔法盒

前言 在C语言的广阔天地中&#xff0c;结构体无疑是一颗璀璨的明珠。它就像是一个魔法盒&#xff0c;能够容纳各种不同类型的数据&#xff0c;并按我们的意愿进行组合和排列。那么&#xff0c;这个魔法盒究竟有何神奇之处呢&#xff1f;让我们一探究竟。 一、结构体的诞生&…

SV学习笔记(七)

类型转换 写在前面 类型转换可以分为 静态转换和动态转换 。静态转换即需要在转换的表达式前 加上单引号 即可&#xff0c;该方式并不会对转换值做检查。如果发生转换失败&#xff0c;我们也无从得知。动态转换即需要使用 系统函数$cast(tgt&#xff0c; src) 做转换。静态转…

光猫桥接模式详细步骤

目录 一、前言 路由模式 &#xff08;宽带默认&#xff09; 桥接模式 二、桥接模式步骤 &#xff08;一&#xff09;图片记录备份 设备信息图 网络侧信息 远程管理密码 宽带上网设置 &#xff08;二&#xff09;桥接模式开始 光猫设置 路由器设置 一、前言 重点&a…

【学习笔记】java项目—苍穹外卖day10

文章目录 苍穹外卖-day10课程内容1. Spring Task1.1 介绍1.2 cron表达式1.3 入门案例1.3.1 Spring Task使用步骤1.3.2 代码开发1.3.3 功能测试 2.订单状态定时处理2.1 需求分析2.2 代码开发2.3 功能测试 3. WebSocket3.1 介绍3.2 入门案例3.2.1 案例分析3.2.2 代码开发3.2.3 功…

【python从入门到精通】-- 第四战:语句汇总

&#x1f308; 个人主页&#xff1a;白子寰 &#x1f525; 分类专栏&#xff1a;python从入门到精通&#xff0c;魔法指针&#xff0c;进阶C&#xff0c;C语言&#xff0c;C语言题集&#xff0c;C语言实现游戏&#x1f448; 希望得到您的订阅和支持~ &#x1f4a1; 坚持创作博文…

Python人工智能应用----文本情感分析

1.问题引入 接着前两节课的内容&#xff0c;今天我们要构建一个人工智能系统。 它的目的是像人类一样&#xff0c;区分评价的情感是正面还是负面的。 接下来&#xff0c;我们要对提取的文本进行感情色彩的分析&#xff0c;这个就是文本情感分析&#xff0c;我们要使用机器学习…

RecyclerView 与 ListView(一):使用

RecyclerView 与 ListView 功能对比 对比项AbsListViewRecyclerView定向刷新不支持支持局部刷新不支持支持刷新动画不支持支持Item点击支持不支持分隔线样式单一自定义样式布局方式列表/网格自定义样式头尾添加支持不支持 Adapter Adapter&#xff1a;1.创建View 2.绑定数据…

理解Three.js的相机

大家都知道我们生活中的相机&#xff0c;可以留下美好瞬间。那Three.js的相机是什么呢&#xff1f;Three.js创建的场景是三维的&#xff0c;而我们使用的显示器显然是二维的&#xff0c;相机就是抽象的定义了三维空间到二维显示器的投影方式。Three.js常见的相机有两类&#xf…

(React组件基础)前端八股文修炼Day6

一 类组件与函数组件有什么异同 在React中&#xff0c;类组件和函数组件是创建组件的两种主要方式。随着React的发展&#xff0c;尤其是自Hooks在React 16.8中引入以来&#xff0c;函数组件的功能变得更加强大&#xff0c;使得它们能够更加方便地与类组件相竞争。下面是类组件…

Apache Paimon实时数据糊介绍

Apache Paimon 是一种湖格式,可以使用 Flink 和 Spark 构建实时 数据糊 架构,用于流式和批处理操作。Paimon 创新地将湖格式和 LSM(日志结构合并树)结构相结合,将实时流式更新引入湖架构中。 Paimon 提供以下核心功能: 实时更新: 主键表支持大规模更新的写入,具有非常…

helm安装chart报unclosed action

我在尝试使用helm安装mysql主从集群&#xff0c;使用bitnami/mysql的官方chart&#xff0c;但是执行helm install mysql-cluster mysql -n mysql-cluster报如下错误&#xff1a; Error: parse error at (mysql/charts/common/templates/_labels.tpl:14): unclosed action 百度…

C++ 类(初篇)

类的引入 C语言中&#xff0c;结构体中只能定义变量&#xff0c;在C中&#xff0c;结构体内不仅可以定义变量&#xff0c;也可以定义函数。 而为了区分C和C我们将结构体重新命名成class去定义 类的定义 标准格式&#xff1a; class className {// 类体&#xff1a;由成员函…

css酷炫边框

边框一 .leftClass {background: #000;/* -webkit-animation: twinkling 1s infinite ease-in-out; 1秒钟的开始结束都慢的无限次动画 */ } .leftClass::before {content: "";width: 104%;height: 102%;border-radius: 8px;background-image: linear-gradient(var(…