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

news2024/11/13 14:46:37

 

 问大家一些问题,平常在我们练习时如果在没有给定数据的情况下,手敲这样一个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']遍历完。

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

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

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

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

相关文章

本届挑战赛冠军方案:基于LLM的多场景智能运维

本文介绍本届挑战赛冠军得主SRE-Copilot团队的参赛方案:基于LLM的多场景智能运维。 基础架构-SRE,负责字节跳动基础架构部门所有组件的SRE工作,沿着成本、稳定性、效率、服务四条主线,致力于打造高扩展、高可用的生产系统。基础架…

林浩然与杨凌芸的Swing组件奇遇记:从按钮到滚动条的UI大冒险

林浩然与杨凌芸的Swing组件奇遇记:从按钮到滚动条的UI大冒险 The Swing Component Odyssey of Lin Haoran and Yang Lingyun: A UI Adventure from Buttons to Scrollbars 在Java王国的一隅,程序员才子林浩然和智慧女神杨凌芸正在进行一场别开生面的UI设…

MySQL 事务原理分析

事务 前提:有并发连接。定义:事务是用户定义的一系列操作,这些操作要么都做,要么都不做,是一个不可分割的单位。目的:事务将数据库从一种一致性状态转换为另一种一致性状态,保证系统始终处于一…

Vue2:路由的两种模式history模式和hash模式

一、情景说明 之前我们写的项目启动后,浏览器访问时,路径中会有个#/,会导致不够美观 因为一般的访问地址都是http://123.123.123.123/aaa/bbb这种形式 这一篇,就来解决这个问题 二、案例 1、hash模式 特点:#/后的…

QMessageBox用法及技巧

一.QMessageBox是什么? QMessageBox类为用户提供了主要的警告信息,用户可以根据需求选择需要的响应; QMessageBox 还提供了一些常用的按钮,例如"确定"、"取消"、"是"、"否"…

redis 面试题

1 redis 如何扩容 Redis 的扩容主要分为两种场景,一种是单实例的内存扩容(垂直扩容),另一种是Redis集群的扩容(水平扩容)。 单实例Redis内存扩容(垂直扩容) 硬件升级: 垂…

Spring MVC 和 Spring Cloud Gateway不兼容性问题

当启动SpringCloudGateway网关服务的时候,没注意好依赖问题,出现了这个问题: Spring MVC found on classpath, which is incompatible with Spring Cloud Gateway. 解决办法就是:删除SpringMVC的依赖,即下列依赖。 &…

年轻人怎么搞钱?

年轻人想要搞钱,可以考虑以下几个方面: 1. 创业:年轻人可以通过自己的创意,找到一个市场的空缺,开创自己的业务。可以从比较小的项目开始,逐渐扩大范围,积累经验和财富。 2. 投资:…

【C++从0到王者】第四十八站:最短路径

文章目录 一、最短路径二、单源最短路径 -- Dijkstra算法1.单源最短路径问题2.算法思想3.代码实现4.负权值带来的问题 三、单源最短路径 -- Bellman-Ford算法1.算法思想2.算法实现3.SPFA优化4.负权回路 四、多源最短路径 -- Floyd-Warshall算法1.算法思想2.算法实现 一、最短路…

python笔记_数据类型

定义:python的变量在使用前必须赋值,数据类型指的是变量指定的内存数据的类型 string字符串类型使用引号int整型整数float浮点型小数bool布尔值(逻辑)输出true/false A,整数类型 整型字节 1,python的整数有十六进制,十进制&#…

HDSRNet | 入局图像超分,异构动态卷积玩出新花样~

首发AIWalker,欢迎关注~ https://arxiv.org/abs/2402.15704 https://github.com/hellloxiaotian/HDSRNet 卷积神经网络可以通过深度网络架构和给定的输入样本自动学习特征。然而,所获得的模型的鲁棒性在不同的场景中可能具有挑战性。网络架构的差异越大…

基于C#开发OPC DA客户端——基于OPCDAAuto

OPC DA OPC DA(OPC Data Access),即OPC数据访问接口,定义了数据交换的规范,包括:过程值、更新时间、数据品质等信息。 自动化接口中共定义了6类对象:OPCServer对象、OPCBrowser对象、OPCGroups对象、OPCGroup对象、O…

《最新出炉》系列初窥篇-Python+Playwright自动化测试-34-处理https 安全问题或者非信任站点-下篇

1.简介 这一篇宏哥主要介绍playwright如何在IE、Chrome和Firefox三个浏览器上处理不信任证书的情况,我们知道,有些网站打开是弹窗,SSL证书不可信任,但是你可以点击高级选项,继续打开不安全的链接。举例来说&#xff0c…

运用JProfiler分析Java程序中的OOM问题

前言 在Java开发过程中,内存管理是一项至关重要的任务。作为开发者,我们时常会遇到一个让人头疼的问题——Java堆空间溢出(OutOfMemoryError,简称OOM)。当程序试图分配超出Java虚拟机(JVM)堆大…

解决error: the following arguments are required问题

今天在运行代码的时候,文件报错如下: mcts.py: error: the following arguments are required: --num_sims, --levels 根据报错信息可以看出这应该是说--num_sims和--levels两个属性并没有定义,但在代码中找了许久,不知道要在哪里…

LeetCode238题:除自身以外数组的乘积(python3)

代码思路: 当前位置的结果就是它左部分的乘积再乘以它右部分的乘积,因此需要进行两次遍历,第一次遍历求左部分乘积,第二次遍历求右部分的乘积,再将最后的计算结果一起求出来。 class Solution:def productExceptSelf(…

外包干了7个月,技术退步明显.......

先说一下自己的情况,大专生,18年通过校招进入北京某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能测…

上位机图像处理和嵌入式模块部署(当前机器视觉新形态)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 过去的机器视觉处理,大部分都是集中在上位机、或者是服务器领域,这种形式维持了很长的时间。这种业务形态下,无…

如何将一台电脑主机分裂成两台、三台?

有用户问:如何将一台电脑主机拆分成两台、三台甚至更多台使用? 这是什么意思? 简单解释一下:在一台计算机主机上,连接两台、三台或者更多台显示器,然后将这台主机的硬件资源分配给这些显示器,然…

Tomcat -2

1. 动静分离 ① 单机反向代理 7-2 代理服务器 7-5 tomcat 设置 7-3 测试: 代理服务器那里写什么就显示什么