自动生成多个有规律的python列表

 

 问大家一些问题,平常在我们练习时如果在没有给定数据的情况下,手敲这样一个DataFrame 对象是不是很麻烦,而且容易出错,我想了一个办法让其自动生成,这样就省事省力。

首先这些数据都是有规则的依次递增的例如:  

'A0', 'A1', 'A2', 'A3', 'A4'

 所以看我的操作:

def str_handle2(B):
    str_werater3 = 'A0,A1,A2,A3,A4'
    new_s = re.sub('A', B, str_werater3)
    list_str_weater = new_s.split(',')
    return  list_str_weater
jieguo = str_handle2("D")
print(jieguo)

 1. 首先我给了它一个模板,'A0,A1,A2,A3,A4',因为作为其他数据如  'B0', 'B1', 'B2', 'B3', 'B4',

只需要替换掉模板中的A就可以了。

这时我想到python 中的正则 re 模块,

re.sub('A', B, str_werater3)
re.sub(pattern, repl, string)

re.sub :  re.sub() 是 Python 标准库 re 模块中的一个函数,主要用于在字符串中查找与正则表达式模式匹配的子串,并将这些匹配项替换为指定的字符串或其他内容。 

  • pattern: 必需参数,它是要匹配的正则表达式模式。这个模式会被编译成一个正则表达式对象(如果它不是一个预编译的正则表达式对象)。

  • repl: 必需参数,它指定了要替换匹配到的子串的内容。它可以是一个字符串,也可以是一个接受匹配对象作为参数的函数,该函数返回一个替换字符串。

  • string: 必需参数,它是待处理的原始字符串,在其中查找并替换匹配项。

明白我做了什么吧?将原字符串str_werater3  中的A替换成了B,不过在我的代码re.sub('A', B, str_werater3)中 B不是将要替换的字符串,我自定义了一个方法,它是方法中的形式参数。

def str_handle2(B):
    str_werater3 = 'A0,A1,A2,A3,A4'
    new_s = re.sub('A', B, str_werater3)
    list_str_weater = new_s.split(',')
    return  list_str_weater。
jieguo = str_handle2("D")

 而   jieguo = str_handle2("D")  中的"D"是我想让其代替字符串中'A0,A1,A2,A3,A4' 所有A 的位置。

 而  list_str_weater = new_s.split(',')   的作用:new_s.split(',')  调用字符串new_s的split()方法,让其将字符串中的元素根据逗号来分割并自动成列表

 这样下来,我们只需要改变向自定义函数  str_handle2()  传入的参数即可,如果需要将所有A更换成C只需要往里面传入 "C"

str_handle2("D")

上面那个还不过瘾还需要更换输入元素才能完成。下面我叫大家一个将所有的元素都生成

例如像这样

str_zimu = 'A,B,C,D,E,F'
str_zimu_no_d = ','.join(s for s in str_zimu.split(',') if s != 'D')
list1 = str_zimu_no_d.split(',')
for outer_var in list1:
    print([f'{outer_var}{inner_var}'for inner_var in range(4,8)])
s for s in str_zimu.split(',') if s != 'D' 是Python中的列表推导式(List Comprehension)语法,它是一种简洁而高效的生成新列表的方式。具体在这个场景中,它的工作原理可以分解为以下步骤:

首先,str_zimu.split(',') 将字符串 str_zimu 按照逗号 , 进行分割,得到一个包含各个分隔元素的列表。例如,对于输入 'A,B,C,D,E,F',此操作将得到 ['A', 'B', 'C', 'D', 'E', 'F']。

接下来,列表推导式 [s for s in ...] 对第一步得到的列表进行遍历。对于列表中的每一个元素 s:

如果满足条件 if s != 'D',即当前元素 s 不等于字符串 'D',则将该元素 s 加入到新生成的列表中。
最终,列表推导式完成遍历后,会生成一个新的列表,其中包含了原始列表中所有不等于 'D' 的元素。

所以整个表达式 s for s in str_zimu.split(',') if s != 'D' 的作用就是:从 str_zimu 按逗号分割出的列表中筛选出不等于 'D' 的元素,并生成一个新的列表。
','.join(s for s in str_zimu.split(',') if s != 'D')  的作用:
(s for s in str_zimu.split(',') if s != 'D')的作用是剔除原来字符串中的'D'元素,并且生成一个新列表。.join的作用将新生成列表中的所有元素进行连接.
','.join
join()
 方法通常用于将一个列表(尤其是由字符串构成的列表)连接成单个字符串,每个元素之间用特定的分隔符隔开。(','这就是特定字符,字符串之间用逗号隔开)

[f'{outer_var}{inner_var}'for inner_var in range(4,8)]  它是列表推导式和字符串格式化的运用。
[xxxxx'for inner_var in range(4,8)] 列表推导式
f'{outer_var}{inner_var}'  字符惨格式化,将想要写入内容写入到想要写入的地方。
f'{outer_var}{inner_var}'中outer_var  控制 像 A0 中,大写字母,inner_var 控制像A0中的数字。
for outer_var in list1:  作用: 因为想要将自定义列表中的  ['A', 'B', 'C', 'E', 'F']每个生成一个像['A4', 'A5', 'A6', 'A7']这样一个东西。所以在for 循环的监督下每当使用完 ['A', 'B', 'C', 'E', 'F']列表一个元素就停止开始遍历下一个'B'接而生成['B4', 'B5', 'B6', 'B7'],直到['A', 'B', 'C', 'E', 'F']遍历完。

尽自己可能,写入一些对大家真实有用的东西。

静下心来,将每一件事做到内心满意

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

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

相关文章

【Sql server】假设有三个字段a,b,c 以a和b分组,如何查询a和b唯一,但是c不同的记录

欢迎来到《小5讲堂》,大家好,我是全栈小5。 这是《Sql Server》系列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对…

电脑桌面便签哪个好,好用的电脑桌面便签推荐

在如今信息爆炸的时代,人们的工作和生活节奏越来越快,记事和备忘变得尤为重要。而电脑桌面便签作为一种方便快捷的记录工具,备受广大用户青睐。那么,电脑桌面便签哪个好,哪个更加出色呢? 作为一名人事专员…

【Linux系统化学习】信号的保存

目录 阻塞信号 信号处理常见方式概览 信号的其他相关概念 在内核中的表示 sigset_t 信号集操作函数 sigprocmask函数 sigpending函数 信号的捕捉 内核如何实现信号的捕捉 sigaction函数 可重入函数 volatile 阻塞信号 信号处理常见方式概览 当信号来临时&#x…

从模型到复合AI系统的转变

2023年,大型语言模型(LLM)吸引了所有人的注意力,它可以通过提示来执行通用任务,例如翻译或编码。这自然导致人们将模型作为AI应用开发的主要成分而密切关注,所有人都在想新的LLM将带来什么能力。然而,随着越来越多的开发者开始使用LLM构建,我们认为这种关注正在迅速改变:最先进…

使用docker安装otter

1、使用docker安装otter首先要把docker装好 2、使用docker把镜像拉进去 拉镜像的过程中注意使用docker load -i imagename命令。如果使用docker import imagename命令拉镜像,在安装过程中会报以下错误: 网上查资料说是需要使用docker ps -a --no-trunc…

【Windows】打开ftp服务器上的文件夹时发生错误,请检查是否有权限

【Windows】打开ftp服务器上的文件夹时发生错误,请检查是否有权限 ftp协议有两种工作方式:port方式和pasv方式,中文意思为主动式和被动式。 port(主动)方式的连接过程是:客户端向服务器的ftp端口&#xf…

CCF推荐会议|截稿倒计时 计算机图形学与多媒体领域3-4月份截稿资讯!

会议之眼精心汇总了以下CCF推荐会议之计算机十大领域之一:计算机图形学与多媒体领域!2024年度3-4月份会议截稿日期将近!会议之眼致力于为科研学者第一时间获取最新学术资讯!助力广大学者保持领先优势!愿科研人员们在专…

【YOLO v5 v7 v8 小目标改进】BiFormer:从局部空间特征到高效的全局空间特征

BiFormer:从局部空间特征到高效的全局空间特征 提出背景BiFormer 结构 小目标涨点YOLO v5 魔改YOLO v7 魔改YOLO v8 魔改 提出背景 论文:https://arxiv.org/pdf/2303.08810.pdf 代码:https://github.com/rayleizhu/BiFormer 问题: 传统的卷…

【Leetcode每日一题】二分查找 - 搜索插入位置(难度⭐)(21)

1. 题目解析 Leetcode链接:35. 搜索插入位置 这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。 核心在于找到给定目标值要在给定数组下标插入的下标并返回,设计一个O(logn)的算法。 2. 算法原理 a. 分析插入…

本地navicate连接vm虚拟机中的mysql5.7docker容器

一,配置 前提是我已经启动的mysql5.7容器 使用 docker ps -a 查看所有的容器 使用 docker exec -it c4f9 bash 进入mysql命令行,注意这个c4f9是容器唯一id,不用写全连接mysql mysql -uroot -p123456,连接成功后 输入 show datab…

云计算 2月21号 (linux文件及用户管理)

一、文件管理 1.1快捷键 编辑命令: Ctrl a :移到命令行首 Ctrl e :移到命令行尾 Ctrl u :从光标处删除至命令行首 Ctrl k :从光标处删除至命令行尾 Ctrl w :从光标处删除至字首 Ctrl d &#x…

优化云的 10 种方法...

云优化是正确选择正确的资源并将其分配给工作负载或应用程序的过程,确保资源得到有效利用并优化性能。这是为了确保您充分利用云基础设施。这包括确保您没有过度配置(或者实际上配置不足)资源,并确保您为正确的任务使用正确的服务…

Stable Diffusion 模型分享:GalaxyTimeMachines GTM ForYou-Fantasy(幻想)

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八 下载地址 模型介绍 作者述:这个“幻想”模型比这个系列的照片模型有更多的风格和颜色。如果推动的…

C++-你知道二叉搜索树吗?(循环版)

1.二叉搜索树 1.1 二叉搜索树概念 二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树: 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值 若它的右子树不为空,则右子树上所有节点的值都大于…

AI智能分析网关V4:抽烟/打电话/玩手机行为AI算法及场景应用

抽烟、打电话、玩手机是人们在日常生活中常见的行为,但这些行为在某些场合下可能会带来安全风险。因此,对于这些行为的检测技术及应用就变得尤为重要。今天来给大家介绍一下TSINGSEE青犀AI智能分析网关V4抽烟/打电话/玩手机检测算法及其应用场景。 将监控…

uni-app去除页面头部的标题栏

uniapp项目 每个界面都会有一个标题栏 配置在我们项目根目录的 pages.json中 我们将它全部去掉 上面还是有一条黑的 体验非常差 我们只需要在pages.json中 指定page的 style中加入 "navigationStyle": "custom"对应的page 就没有这个标题栏了

MySQL 核心模块揭秘 | 07 期 | 二阶段提交 (1) prepare 阶段

二阶段提交的 prepare 阶段,binlog 和 InnoDB 各自会有哪些动作? 本文基于 MySQL 8.0.32 源码,存储引擎为 InnoDB。 1. 二阶段提交 二阶段提交,顾名思义,包含两个阶段,它们是: prepare 阶段。…

基础小白快速入门c语言--

变量: 表面理解:在程序运行期间,可以改变数值的数据, 深层次含义:变量实质上代表了一块儿内存区域,我们可以将变量理解为一块儿内存区域的标识,当我们操作变量时,相当于操作了变量…

社会底层人民要被人工智能和机器人淘汰了吗?你害怕被AI代替吗?

随着科技的飞速发展,人工智能和机器人技术已经成为我们日常生活中不可或缺的一部分。这些技术的广泛应用引发了一些担忧,其中之一就是社会底层人民是否会被人工智能和机器人所淘汰。然而,这个问题并不是非黑即白的,它需要从多个角…

IDEA 配置股票插件

IDEA配置股票基金实时查看插件,步骤如下: 打开Settings,找到Plugins,在Marketplace中搜索:Money Never Sleeps,如下图所示: Money Never Sleeps是IntelliJ IDEA平台插件. 支持查看股票实时行情…