python 第九章 常用操作

news2024/12/25 23:36:19

系列文章目录

第一章 初识python
第二章 变量
第三章 基础语句
第四章 字符串str
第五章 列表list []
第六章 元组tuple ( )
第七章 字典dict {}
第八章 集合set {}


文章目录

  • 系列文章目录
    • 9.1公共操作
      • 运算符
        • + 合并
        • * 复制
        • 判断数据是否存在
      • 公共方法
        • len()
        • del
        • max()
        • min()
        • range
        • enumerate
      • 容器类型转换
        • tuple()
        • list()
        • set()
    • 9.2 推导式
      • 列表推导式
        • 带if的列表推导式
        • 多个for循环实现列表推导式
      • 字典推导式
      • 集合推导式


9.1公共操作

运算符

运算符描述支持的容器类型
+合并字符串、列表、元组
*复制字符串、列表、元组
in元素是否存在字符串、列表、元组、字典
not in元素是否不存在字符串、列表、元组、字典

+ 合并

str1 = "abc"
str2 = "def"
print(type(str1 + str2))
print(str1 + str2)

list1 = [1, 2, 3]
list2 = [10, 20, 30]
print(type(list1 + list2))
print(list1 + list2)

tuple1 = (1, 2, 3)
tuple2 = (10, 20, 30)
print(type(tuple1 + tuple2))
print(tuple1 + tuple2)

在这里插入图片描述
字典不支持合并运算
在这里插入图片描述

* 复制

str1 = "abc"
list1 = ["hello"]
tuple1 = ("world",)

# *:复制
print(str1 * 5)
print(list1 * 5)
print(tuple1 * 5)

#  打印10个 "-"
print('-' * 10)

在这里插入图片描述

判断数据是否存在

str1 = "abc"
list1 = ["hello"]
tuple1 = ("world",)

# *:复制
print(str1 * 5)
print(list1 * 5)
print(tuple1 * 5)

#  打印10个 "-"
print('-' * 10)

在这里插入图片描述

公共方法

函数描述
len()计算容器中元素个数
del 或 del()删除
max()返回容器中元素最大值
min()返回容器中元素最小值
range(start,end, step)生成从start到end的数字,步长为 step,供for循环使用
enumerate()函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中

len()

在这里插入图片描述

del

在这里插入图片描述

list1 = [10, 20, 66, 30, 99, 50]

del(list1[0])
print(list1) # [20, 66, 30, 99, 50]

del(list1)
print(list1)
set1 = {10, 20, 66, 30, 99, 50}

del(set1)
print(set1)
dict1 = {"name": "意境", "age": 18}

del dict1["age"]
print(dict1)

del(dict1)
print(dict1)

max()

str1 = "abcdefg"
list1 = [10, 20, 66, 30, 99, 50]

print(max(str1))  # g
print(max(list1))  # 99

min()

str1 = "abcdefg"
list1 = [10, 20, 66, 30, 99, 50]

print(min(str1))  # a
print(min(list1))  # 10

range

range(start,end, step)

生成从start到end的数字,步长为 step,供for循环使用 。

类似描述:切片,需要注意的是切片end位置的数据不包含,range也不包含end结束位。start可以省略,默认从0开始。step可以省略,默认步长为1。

# 1 2 3 4 5 6 7 8 9
for i in range(1, 10, ):  # range(1, 10, 1)
    print(i, end=" ")

print()
# 1 3 5 7 9
for i in range(1, 10, 2):
    print(i, end=" ")

print()
# 0 1 2 3 4 5 6 7 8 9
for i in range(10):
    print(i, end=" ")

注意: range()生成的序列不包含end数字。

enumerate

enumerate(可遍历对象,start=0)
函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中 。

返回结果是元组,元组第一个数据是原迭代对象的数据对应的下标,元组第二个数据是原迭代对象的数据。

start参数用来设置遍历数据的下标的起始值,默认为0。

list1 = ['a', 'b', 'c', 'd', 'e']

for i in enumerate(list1):
    print(i)

在这里插入图片描述

在这里插入图片描述
拆包:

list1 = ['a', 'b', 'c', 'd', 'e']

for index, value in enumerate(list1, start=1):
    print(f'下标{index},对应数据是{value}')

在这里插入图片描述

容器类型转换

tuple()

作用:将某个序列转换成元组
在这里插入图片描述

list()

作用:将某个序列转换成列表
在这里插入图片描述

set()

作用:将某个序列转换成集合
在这里插入图片描述

注意:
1.集合可以快速完成列表去重
2.集合不支持下标

9.2 推导式

推导式就是一种更有风格的python代码的一种写法。例如一个需求代码可能要5行,但是我用推导式去书写很可能1行代码就完成了。

列表推导式

作用: 用一个表达式创建一个有规律的列表或控制一个有规律列表。
列表推导式又叫列表生成式。

例:创建一个0-9的列表

  • while循环实现
    在这里插入图片描述

  • for循环实现
    在这里插入图片描述- 列表推导式去实现

list1 = [ i for i in range(10) ]
print(list1)  # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

带if的列表推导式

需求:创建0-9的偶数列表
方法一:range()步长实现

在这里插入图片描述
方法二:if 实现

list1 = [i for i in range(10) if i % 2 == 0]
print(list1)  # [0, 2, 4, 6, 8]

多个for循环实现列表推导式

需求: 创建列表如下:
[(1, 0),(1,1),(1, 2), (2, 0),(2, 1), (2, 2)]

代码如下:

list1 = [(i, j) for i in range(1, 3) for j in range(3)]
print(list1)  # [(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]

在这里插入图片描述

多for的列表推导式等同于for循环嵌套

字典推导式

思考: 如果有如下两个列表
list1 = [‘name’, ‘age’, ‘gender’]
list2 = [‘意境’, 20, ‘man’]

问:如何快速合并为一个字典?
答:字典推导式

字典推导式作用: 快速合并列表为字典或提取字典中目标数据

①创建一个字典: 字典key是1-5数字,value是这个数字的2次方
key:value 的形式

dict1 = {i: i ** 2 for i in range(1, 6)}
print(dict1)  # {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

在这里插入图片描述
②将两个列表合并为一个字典

list1 = ['name', 'age', 'gender']
list2 = ['意境', 20, 'man']
dict1 = {list1[i]: list2[i] for i in range(len(list1))}
print(dict1)  # {'name': '意境', 'age': 20, 'gender': 'man'}

在这里插入图片描述
但是这样写还是有问题的,假如list1和list2长度不一样,会报错IndexError: list index out of range,下标越界的意思
在这里插入图片描述

总结:
1.如果两个列表数据个数相同,len统计任何一个列表的长度都可以
2.如果两个列表数据个数不同,len统计数据多的列表数据个数会报错,len统计数据少的列表数据个数不会报错

在这里插入图片描述
③提取字典中目标数据

counts = {'MBp': 268, 'HP': 125, 'DELL': 201, 'Lenovo': 199, 'acer': 99}
# 需求: 提取上述电脑数量大于等于209的字典数据
count1 = {key: value for key, value in counts.items() if value >= 200}
print(count1)  # {'MBp': 268, 'DELL': 201}

集合推导式

使用几率不高

需求: 创建一个集合,数据为下方列表的2次方
list1 = [1, 2, 1, 3]

list1 = [1, 2, 1, 3]
set1 = {i ** 2 for i in list1}
print(set1)  # {1, 4, 9}

注意:集合有数据去重功能

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

css实现文档目录(中间分割线宽度不定)

css实现文档目录(中间分割线宽度不定) 先上图片看效果 布局 数据 css样式 其实挺简单的,flex直接搞定

十六、centos7 下给python3创建虚拟环境

十五、centos7 下给python3创建虚拟环境 1.先说下为什么要创建虚拟环境 python3安装完成后,安装第三方库 pip3 install requests -i https://pypi.doubanio.com/simple提示如下让使用虚拟环境,不使用,即便是安装,也不能使用已经…

长连接和短链接详解

长连接和短链接详解 日常工作和生活中接触到的软件系统大多数情况下是由多个进程共同协作进行的,所以,了解进程之间如何进行高效的通信至关重要。 进程之间的通信有不少方式包括管道(包括无名管道和命名管道)、消息队列、信号量、…

Vue3在外部js文件获取Vue实例对象中的方法

刚开始想用getCurrentInstance 获取 发现这玩意只能写在setUp里面 然后百度发现在外部js文件只能先引入main.js在使用,这里注意要先将app实例导出 然后在外部js引用 就能获取到实例对象了 这点跟Vue2还是有很大区别

【SLAM14讲】 SLAM数学基础

一、向量 我们确定一个坐标系,也就是一个线性空间的基 (e1, e2, e3), 那就可以谈论向量 a 在这组基下的坐标了: 1.1 内积 内积可以描述向量间的投影关系 1.2 外积 外积的方向垂直于这两个向量,大小为 |a| |b|sin 〈a, b〉&…

【生态系统服务】构建生态安全格局--权衡与协同动态分析--多情景模拟预测--社会价值评估

生态系统服务 生态系统服务(ecosystem services)是指人类从生态系统获得的所有惠益,包括供给服务(如提供食物和水)、调节服务(如控制洪水和疾病)、文化服务(如精神、娱乐和文化收益…

vite + vue3 + tailwindcss

要在Vite Vue3中使用Tailwind CSS 创建项目 pnpm create vite在项目根目录中打开终端,并运行以下命令安装Tailwind CSS和相关依赖: pnpm install tailwindcss postcss autoprefixer执行 npx tailwindcss init,自动生成配置文件在tailwind.c…

【Unity3D】选中物体消融特效

1 消融特效原理 当前实现消融特效的方法主要有 Alpha 测试消融、clip(或 discard)消融,它们的本质都是随机丢弃一些片元,以实现消融效果。 1)噪声纹理 为模拟随机效果,可以通过对噪声纹理进行采样实现&…

Linux操作系统详解

文章目录 引言1. 认识Linux1.1 操作系统概述1.2 认识Linux1.3 虚拟机介绍1.4 远程连接Linux操作系统1.5 WSL1.6 虚拟机快照 2. Linux基础命令2.1 Linux的目录结构2.2 命令入门2.3 目录切换相关命令(cd/pwd)2.4 相对路径,绝对路径和特殊路径符…

当某个微服务重启后,GateWay网关访问服务出现503的问题

因为开发阶段可能需要经常重启微服务,但有时会莫名奇妙返回503 Service Unavailable 由于从springcloud2020版本开始,弃用了Ribbon,因此Alibaba在2021及之后版本的nacos中删除了Ribbon的jar包,因此无法通过loadbalancer路由到指定…

SpringBoot使用AOP

Spring相信大家都学过,就不多述了。 自定义注解,注解的类中所有的接口都会执行AOP增强,注解的接口会执行AOP增强。 注解类: package xin.students.examManagement.annotation.springConfiguration;import java.lang.annotation…

tensorboard 如何导出数据

tensorboard 如何导出数据 场景描述:有时候在第一遍跑实验的时候,由于epoch和内部循环变量的原因,做出来的图可能不是我们想要的,这个时候,需要自己导出数据并且重新画图,本文介绍如何导出数据道json或csv格…

超声波功率放大器在超声驱动技术中的应用

超声波功率放大器是一种能够将低功率信号放大到足够高的电平的电子器件。在超声驱动技术中,超声波功率放大器被广泛应用于超声波发生器、超声波换能器和超声波传感器等部件中,以保证这些部件的正常工作和高效性能。 超声波功率放大器在超声驱动技术中的应…

C++primer(第五版)第十二章(动态内存)

C中内存包含静态内存,栈内存,自由空间(堆). 静态内存用于保存局部的static(静态)对象,以及定义于任何函数以外的变量(全局变量). 栈内存用来保存定义在函数内的非static对象,由编译器自动创建和销毁. 程序可以用堆来存储动态分配的对象,同时也需要由我们来显式地销毁. 12.1…

【第四天学习】数组

数组批量数据处理 数组的定义 速度是一个相同类型的用同一个标识符封装到一起的基本数据类型,可以使用一个统一的速度名或者是索引来唯一确定速度中的每个元素,它的执行效率非常高。 数组中每一个变量称为数组的元素,数组能够容纳元素的数…

Centos7安装wordpress图文教程

宝塔面板安装WordPress有两种方法: 自己手动安装(推荐)宝塔后台一键部署跳转提示 推荐使用手动安装,因为一键部署的WordPress版本不是最新的,而且自己上传的文件比较放心。 第一步,上传WordPress安装包 …

提升UE5写实效果的项目设置

随着虚幻引擎5(Unreal Engine 5,简称UE5)的发布,游戏开发者和数字艺术家们迎来了一个全新的机会,可以在其强大的渲染引擎下创建更加逼真和令人惊叹的游戏和虚拟场景。然而,要实现出色的写实效果&#xff0c…

经典轻量级神经网络(2)MobileNetV2及其在Fashion-MNIST数据集上的应用

经典轻量级神经网络(2)MobileNet V2及其在Fashion-MNIST数据集上的应用 1 MobileNet V2的简述 MobileNet V2 创新性的提出了具有线性bottleneck 的Inverted 残差块。这种块特别适用于移动设备和嵌入式设备,因为它用到的张量都较小,因此减少了推断期间的…

Redis 入门指南

Redis 入门指南 目录 Redis 入门指南 Redis 基本概念 Redis 常用命令 字符串String操作命令: 哈希Hash操作命令: 列表list操作命令 集合set操作命令: 有序集合sorted set 操作命令 通用命令 在Java中操作 Redis 1.Jedis 2.Spring …

windows后台窗口启动jar包

启动命令 chcp 65001 //切换utf-8 echo off start javaw -jar test-1.0-SNAPSHOT.jar --spring.profiles.activeprod echo 启动成功,按任意键结束 pause exit查看后台进程命令 wmic process where caption"javaw.exe" get processid,caption,commandli…