【Python】记录生产编程小tips(字符串处理、列表删除、字典、csv、excel操作)持续更新

news2024/10/2 22:30:00

文章目录

  • 一.for循环删除列表元素
    • 1.删除list元素方法
    • 2.直接删除往往结果与期望不一致
    • 3.循环删除元素的正确方法:
      • 方法1:while循环+i减
      • 方法2:使用copy
      • 方法3:倒叙遍历
  • 二.字符串处理库
  • 三.字典—dict运用
  • 四.csv操作
  • 五.excel操作
    • 1.读excel——xlrd
    • 2.写excel——xlwt
    • 3.使用 openpyxl 来处理
    • 4.使用Pandas库来处理excel数据

一.for循环删除列表元素

1.删除list元素方法

  • pop方法:是删除第一个或者是指定删除元素的下标。返回被删除的值。

     list.pop(i)
    
  • remove方法:直接指定要删除的元素值,删除首个匹配的值。

    list.remove(item)
    
    list2=[1,2,3,4,5,6,7,5]
    list2.remove(5)
    print(list2)
    
  • 结果:

    [1, 2, 3, 4, 6, 7, 5] 
    
    • del 元素方法
  • 可以删除指定下标的元素,删除指定下标范围内的多个元素,删除整个对象

    list2=[1,2,3,4,5,6,7,5]
    del list2[1]
    print(list2) #[1, 3, 4, 5, 6, 7, 5]
    
    list2=[1,2,3,4,5,6,7,5]
    del list2[2:4] #删除3,4
    print(list2) #[1, 2, 5, 6, 7, 5]
    
    list2=[1,2,3,4,5,6,7,5]
    del list2
    print(list2) #NameError: name 'list2' is not defined
    

2.直接删除往往结果与期望不一致

python 使用for循环删除列表元素,容易出现结果与期望不一致问题。

  • 例如代码:要删除列表中的3或者4,但是最后结果是4未删除掉。
list = [1, 2, 3, 4, 5]
print(list)
for ele in list:
    if ele == 3 or ele == 4:
        list.remove(ele)
    else:
        print(ele)
print(list)

结果:

[1, 2, 3, 4, 5]
1
2
5
[1, 2, 4, 5]

  • 因为删除3后,3之后的[4,5]前移,4占了3原来的位置。下次循环是取3之后的数,即现在4之后的数(因为4去3的位置顶替了),也就是继续去判断5了。

3.循环删除元素的正确方法:

方法1:while循环+i减

  • 使用while循环时刻监测数组长度,控制数组索引i,当i 遇到删除元素时候就往回移动一个元素位置,即减1
list=[1,2, 3, 4, 5]
i=0
#不能使用for i in range(0,len(num_list))会导致最后index溢出
while i < len(list):
    if list[i] == 3 or list[i]==4:
        list.pop(i)
        i-=1
    else:
        print("num_list[{}]={}".format(i,list[i]))
    i+=1
 
print(list)

结果:

num_list[0]=1
num_list[1]=2
num_list[2]=5
[1, 2, 5] 
  • 注意:while循环不可以换成for,for i in range(0,len(num_list))会导致最后索引i溢出

方法2:使用copy

  • 切片是生成数组的copy方式之一
list = [1, 2, 3, 4, 5]
# num_list[:]是对num_list的拷贝

for item in list[:]:
    if item == 3 or item==4:
        list.remove(item)
    else:
        print(item)
 
print(list)

结果:

1
2
5
[1, 2, 5]

方法3:倒叙遍历

倒叙遍历,删除某个元素后,后面元素向前顶替位置,后面的元素是已经check过的,所以不会导致元素遗漏问题。

list = [1, 2, 3, 4, 5]
 
for i in range(len(list)-1, -1, -1):
    if list[i] == 3 or list[i] == 4:
        list.pop(i)
    else:
        print("num_list[{}]={}".format(i,list[i]))
 
print(list)

结果:

num_list[4]=5
num_list[1]=2
num_list[0]=1
[1, 2, 5]

二.字符串处理库

在这里插入图片描述

三.字典—dict运用

  • setdefault() 函数 —有key获取值、没key设置 key:default

     dict.setdefault(key, default=None)
    
    • 如果 key 在 字典中,返回对应的值。

    • 如果 key 不在字典中,则插入 key 及设置的默认值 default,并返回 default ,default 默认值为 None。

  • get()函数—有key获取值、没key返回default:

      dict.get(key, default=None)
    
    • 返回指定键的值,如果值不在字典中返回默认值 None。
      • 而dict[key] 这种查询方法不要用,查询不到会报错

四.csv操作

读取CSV文件,打开文件并创建一个csv.reader对象来读取文件的内容

import csv
with open(r'C:\Users\87772\Desktop\asr_text_20240223.csv', 'r') as file:
    # 创建CSV读取器
    reader = csv.reader(file)
    # 遍历每一行
    for row in reader:
    print(row)

写入CSV文件,需要创建一个csv.writer对象,并将要写入的数据传递给它。

import csv

data = [
    ['Name', 'Age', 'Country'],
    ['John', 25, 'USA'],
    ['Alice', 30, 'Canada'],
    ['Bob', 35, 'UK']
]

#指定了参数newline='',以防止在写入文件时出现空行
with open(r'C:\Users\87772\Desktop\asr_text_20240223.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    writer.writerows(data)

五.excel操作

1.读excel——xlrd

在这里插入图片描述
示例1:Python读取Excel文件特定数据
在这里插入图片描述
示例2:Python读取Excel文件所有数据
在这里插入图片描述

2.写excel——xlwt

xlwt模块只能写xls文件,不能写xlsx文件(写xlsx程序不会报错,但最后文件无法直接打开,会报错)。
在这里插入图片描述

示例:新建excel文件并写入数据
在这里插入图片描述

3.使用 openpyxl 来处理

openpyxl模块可实现对excel文件的读、写和修改,只能处理xlsx文件不能处理xls文件。

在这里插入图片描述

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

4.使用Pandas库来处理excel数据

Pandas 可以从各种文件格式比如 CSV、JSON、SQL、Microsoft Excel 导入数据。

在这里插入图片描述

在这里插入图片描述

写excel
在这里插入图片描述
修改excel–以修改原Excel文件中gender列数据为例,把girl修改为female,boy修改为male:
在这里插入图片描述
示例1:读取excel数据

在这里插入图片描述
示例2:操作Excel中的行列
在这里插入图片描述

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

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

相关文章

AI:139-基于深度学习的语音指令识别与执行

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带关键代码,详细讲解供大家学习,希望…

改进 RAG:自查询检索

原文地址&#xff1a;Improving RAG: Self Querying Retrieval 2024 年 2 月 11 日 让我们来解决构建 RAG 系统时的一个大问题。 我们不能依赖语义搜索来完成每个检索任务。只有当我们追求单词的含义和意图时&#xff0c;语义搜索才有意义。 But in case&#xff0c;我们正…

python自动化管理和zabbix监控网络设备(有线网络和路由配置部分)

目录 目录 一、拓扑图 二、core-sw1 三、core-sw2 四、sum-sw1 五、sum-sw2 六、FW1 七、DMZ-SW1 结语 一、拓扑图 二、core-sw1 sys sysname core-sw1 vlan batch 10 20 30 40 50 60 100 vlan batch 200 210 220 230 240 250 stp region-configuration region-name…

选择稳定代理IP需要考虑哪些因素?

很多人不知道怎么选择稳定的代理IP&#xff0c;也不知道当前代理IP套餐是否稳定&#xff0c;今天我们一起来分析下&#xff0c;选择稳定的代理IP可以从哪几方面去考虑。 1、代理IP的可用性 代理IP要稳定&#xff0c;先要可以用。一个代理IP池是否稳定&#xff0c;要看代理IP的…

区分服务 DiffServ

目录 区分服务 DiffServ 区分服务的基本概念 区分服务 DiffServ 的要点 每跳行为 PHB DiffServ 定义的两种 PHB 区分服务 DiffServ 区分服务的基本概念 由于综合服务 IntServ 和资源预留协议 RSVP 都较复杂&#xff0c;很难在大规模的网络中实现&#xff0c;因此 IET…

Docker复习笔记

Centos7安装Docker Docker官网:www.docker.com Docker官网仓库:hub.docker.com Docker文档是比较详细的 安装相关依赖 yum -y install gcc gcc-c yum install -y yum-utils 设置docker镜像仓库 yum-config-manager --add-repo https://download.docker.com/linux/centos/do…

Mysql运维篇(五) 部署MHA--主机环境配置

一路走来&#xff0c;所有遇到的人&#xff0c;帮助过我的、伤害过我的都是朋友&#xff0c;没有一个是敌人。如有侵权&#xff0c;请留言&#xff0c;我及时删除&#xff01; 大佬博文 https://www.cnblogs.com/gomysql/p/3675429.html MySQL 高可用&#xff08;MHA&#x…

js:通过input标签或Drag拖拽文件实现浏览器文件上传获取File文件对象

文档 https://developer.mozilla.org/zh-CN/docs/Web/API/Filehttps://developer.mozilla.org/zh-CN/docs/Web/API/HTMLElement/drag_event 通过读取文件可以获取File对象的信息 lastModified: 1707210706000 lastModifiedDate: Tue Feb 06 2024 17:11:46 GMT0800 (中国标准…

使用 Verilog 做一个可编程数字延迟定时器 LS7211-7212

今天的项目是在 Verilog HDL 中实现可编程数字延迟定时器。完整呈现了延迟定时器的 Verilog 代码。 所实现的数字延迟定时器是 CMOS IC LS7212&#xff0c;用于生成可编程延迟。延迟定时器的规格可以在这里轻松找到。基本上&#xff0c;延迟定时器有 4 种操作模式&#xff1a;…

备考北京高考数学:历年选择题真题练一练和解析(2014-2023)

还有三个多月的时间就要高考了&#xff0c;我们今天继续看北京市高考数学真题和解析。今天看5道选择题。独家制作的在线练习集&#xff0c;可以便捷地反复刷这些真题&#xff0c;吃透真题&#xff08;背后的知识点和解题技巧&#xff09;&#xff0c;让高考数学再上一个台阶。 …

【LeetCode:2476. 二叉搜索树最近节点查询 + 中序遍历 + 有序表】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

【算法小讲堂】#1 贪心算法

引入——关于贪心算法 我们先来做一个小游戏——现在假设自己是一个小偷&#xff0c;桌上有一些物品&#xff0c;包括一台iPhone15、一个充电宝、一个眼罩和一个溜溜梅。此时&#xff0c;你听说警察即将到来&#xff0c;那么你会先带走哪个东西呢&#xff1f; 一般来讲&#xf…

[云原生] 二进制安装K8S(上)搭建单机matser、etcd集群和node节点

一、单机matser预部署设计 目前Kubernetes最新版本是v1.25&#xff0c;但大部分公司一般不会使用最新版本。 目前公司使用比较多的&#xff1a;老版本是v1.15&#xff0c;因为v1.16改变了很多API接口版本&#xff0c;国内目前使用比较多的是v1.18、v1.20。 组件部署&#xff…

beego代理前端web的bug

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、beego代理前端web的bug总结 一、beego代理前端web的bug *报错&#xff0c;为web压缩包index.html里面的注释被错误解析&#xff0c;删掉就行 2024/02/22 10:2…

[HarekazeCTF2019]encode_and_encode 不会编程的崽

这题知道这个知识点就挺好做的 <?php error_reporting(0);if (isset($_GET[source])) {show_source(__FILE__);exit(); }function is_valid($str) {$banword [// no path traversal\.\.,// no stream wrapper(php|file|glob|data|tp|zip|zlib|phar):,// no data exfiltra…

如何实现固定公网地址远程访问内网Wagtail管理界面

文章目录 前言1. 安装并运行Wagtail1.1 创建并激活虚拟环境 2. 安装cpolar内网穿透工具3. 实现Wagtail公网访问4. 固定的Wagtail公网地址 前言 Wagtail是一个用Python编写的开源CMS&#xff0c;建立在Django Web框架上。Wagtail 是一个基于 Django 的开源内容管理系统&#xf…

【精品】OnlyOffice 8.0 版本深度测评

引言 官网链接&#xff1a; ONLYOFFICE 官方网址 OnlyOffice 是一套全面的开源办公协作软件&#xff0c;旨在为用户提供强大、便捷和安全的文档处理和协作环境。最新发布的 OnlyOffice 8.0 版本带来了一系列引人瞩目的新特性和功能改进&#xff0c;进一步提升了其在功能丰富性…

Pyglet综合应用|推箱子游戏之关卡图片载入内存

目录 读取图片 分割图片 综合应用 本篇为之前写的博客《怎样使用Pyglet库给推箱子游戏画关卡地图》的续篇&#xff0c;内容上有相关性&#xff0c;需要阅读的请见链接&#xff1a; https://hannyang.blog.csdn.net/article/details/136209138 「推箱子」是一款风靡全球的益…

element table数据量太大,造成浏览器崩溃。解决方案

这是渲染出来的数据 其实解决思路大致就是&#xff1a;把后台返回的上万条数据&#xff0c;进行分割&#xff08;前端分页&#xff09;&#xff0c;这样先加载几十条&#xff0c;然后再用懒加载的方式去concat&#xff0c;完美解决 上代码 <template><div class&quo…

四川宏博蓬达法律:正义之路的坚实守护者

在当今社会&#xff0c;法律的重要性不言而喻。它既是社会秩序的维护者&#xff0c;也是公民权益的保障者。四川宏博蓬达法律&#xff0c;作为一家专业的法律服务机构&#xff0c;始终秉持着正义、公平、诚信的原则&#xff0c;为广大民众提供优质的法律服务。 一、专业团队&am…