python中的split()、rsplit()、splitlines()用法比较

news2025/1/17 15:15:26

  • 1 split() 从左向右切割
  • 2 rsplit() 从右向左分割
  • 3 splitlines() 根据换行符切割
  • 4 rsplit()妙用

split(分隔符,分割几次)从左向右寻找,分割元素并放入列表中,该分隔符丢弃;

rsplit(分隔符,分割几次)从右向左寻找,分割元素并放入列表中,该分隔符丢弃;

splitlines() 按照行(‘\r’, ‘\r\n’, \n’)分隔,并将元素放入列表中,该分隔符丢弃;

1 split() 从左向右切割

split()表示通过指定分隔符对字符串进行切片,元素放入列表中,该分隔符丢弃;

从左向右寻找切割,切片类表从左到右下标从0开始;

split(分隔符,分割几次)

split() 方法语法:

str.split(str="", num=string.count(str)).
参数
str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
num -- 分割次数。默认为 -1, 即分隔所有。
def demo():
    str = "a,b,c,d,e,f,g"
    str = str.split(",") #通过指定分隔符对字符串进行切片,保存在列表里
    print(str) 
    print(str[0]) 
 
demo()

输出

['a', 'b', 'c', 'd', 'e', 'f', 'g']
a

split(分隔符,分割几次)

def demo():
    str = "a,b,c,d,e,f,g"
    str = str.split(",",1) #只分割一次
    print(str) 
 
demo()

分割结果

['a', 'b,c,d,e,f,g']

详细分析

def demo():
    str = "a,b,c,d,e,f,g" 
    print(type(str)) #字符串类型
    print(str)
    str = str.split(",") #通过指定分隔符对字符串进行切片,保存在列表里
    print(type(str)) #切片后列表类型
    print(str)
    print(str[0]) 

    demo()

在这里插入图片描述

2 rsplit() 从右向左分割

rsplit()表示从右侧开始将字符串拆分为列表,切片类表从左到右下标从0开始;

rsplit(分隔符,分割几次);

def demo():
    str = "/home/data/2/text.txt"
    str = str.rsplit("/")  #从右向左寻找分隔符,分割后的列表下标依然是从左向左从0开始
    print(str)

    print(str[0]) # 第0号元素是最左侧分割线,左边的元素,这个为空,
    print(str[1])
 
demo()

在这里插入图片描述
输出结果

['', 'home', 'data', '2', 'text.txt']

home

rsplit(分隔符,分割几次);
只分割一次;

def demo():
    str = "/home/data/2/text.txt"
    str = str.rsplit("/",1)  #从右向左寻找分隔符,分割后的列表下标依然是从左向左从0开始
    print(str)

    print(str[0])
    print(str[1])
 
demo()

在这里插入图片描述
输出结果

['/home/data/2', 'text.txt']
/home/data/2
text.txt

3 splitlines() 根据换行符切割

描述
splitlines() 按照行(‘\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。

语法

str.splitlines([keepends])
参数
keepends -- 在输出结果里是否保留换行符('\r', '\r\n', \n'),默认为 False,不包含换行符,如果为 True,则保留换行符。

返回值
返回一个包含各行作为元素的列表。

def demo():
    str = "hello\nworld\ndlrb"
    str = str.splitlines() #根据换行符切割,,,注意换行符是这样'\n'

    print(str)
    print(str[0])
 
demo()

在这里插入图片描述
输出结果

['hello', 'world', 'dlrb']
hello

4 rsplit()妙用

Python 字符分割时,只分割最后一个(rsplit的使用)

在python分割时,有时候不是把整个字符分割,而是只分割部分,例如:我要分割文件路径,只想把最后的文件名去除,保留文件夹的路径。

例如:/home/username/data/text.txt 我想要得到/home/username/data/。如果用split则会把整个分割成一个list,但是可以使用rsplit。

path = "/home/username/data/text.txt "
#使用split -->["home","username","data","text.txt "] 
path.split("/") 

# 而使用rsplit -->["/home/username/data","text.txt "]
path.rsplit("/",1)[0] 

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

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

相关文章

算法的复杂性分析

算法的复杂性分析 文章目录算法的复杂性分析0、 算法评价的基本原则1、影响程序运行时间的因素2、算法复杂度2.1 算法的时间复杂度2.2 渐进表示法2.2.1 运行时间的上界2.2. 运行时间的下界2.2.3 运行时间的准确界3、总结4、参考0、 算法评价的基本原则 评价一个算法的好坏实际就…

第二证券|市场短期盘整 不改中期向好格局

12月初以来A股商场全体走势偏弱,上星期首要指数更是五连跌,上证指数重回3100点下方。关于商场近期的再度调整,本周组织观念显现,疫情带来的扰动或是首要原因。 不过,大都组织以为,心情面要素对商场的影响仅…

面试官:ui组件可以自动加载,那么业务组件可以吗?

大厂面试题分享 面试题库 前端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 背景 笔者在最近在公司接手了一个老的对内使用的项目,接手后体验了下 发现首屏加载比较慢。分析了下大概的原因是main.js挂…

算法进阶:双指针(一)c++leetcode例题

82. 删除排序链表的重复元素 力扣传送: https://leetcode.cn/problems/remove-duplicates-from-sorted-list-ii/description/ 给一个排好序的链表,删除把链表中出现的所有的重复的项: 1 2 2 3 3 3 4 5 -----> 1 4 5 这道题有很多种解法&a…

Unity3D——第一人称FPS生存游戏(resident zombies)

游戏源文件和游戏试玩程序:链接: 链接:https://pan.baidu.com/s/1Ln2tFizqEO_uEoQhuxvgrQ?pwdl6w0 提取码:l6w0 游戏思路前身搭建: 用一些正方体和胶囊做出来的基础场景, 人物设计:红色的胶囊体是敌人,手持枪械是…

一文说透BIO以及非阻塞IO

目录1. 一次I/O到底经历了什么2. 什么是Socket3. 阻塞I/O(Blocking I/O,BIO)3.1. 客户端的socket流程3.1.1. 何为socket?3.1.2. 何为连接?3.2. 服务端的socket流程3.2.1. 创建socket3.2.2. 绑定端口号3.2.3. listen()的…

项目实战之旅游网(六)认证与授权

一.编写相关页面 在本项目中,我们使用Spring Security 进行认证和授权,首先我们先编写相关页面。 1.编写登录页面admin_ login.html 2.编写登录失败页面admin_ fail.html 3.编写权限不足页面no_ permission.html 略过。知道其功能即可。 二.编写配置…

数字孪生城市可视化大屏设计,智慧楼宇开源项目

纵观城市发展历史,技术的革命必然会带动城市内部的变革。当前,以数字孪生为代表的前言信息技术飞速发展,必然会使社会对数字城市的深度和广度有着更为清晰的认知。加快构建数字孪生城市管理平台,通过三维可视化大屏直观展示&#…

图表控件LightningChart.NET 系列教程(六):许可证管理介绍(中)

LightningChart.NET SDK 是一款高性能数据可视化插件工具,由数据可视化软件组件和工具类组成,可支持基于 Windows 的用户界面框架(Windows Presentation Foundation)、Windows 通用应用平台(Universal Windows Platfor…

Apache ShardingSphere-Proxy <5.3.0 存在身份认证绕过漏洞

漏洞描述 Apache ShardingSphere 是一款分布式的数据库生态系统,ShardingSphere-Proxy 是支持 MySQL、PostgreSQL 和 openGauss 协议的数据库代理模块。 ShardingSphere-Proxy 5.3.0 之前的版本中在使用 MySQL 作为后端数据库时,在客户端认证失败后没有…

Linux进程状态与优先级

Ⅰ. OS进程状态的概念 进程状态反映进程执行过程的变化。这些状态随着进程的执行和外界条件的变化而转换。 在三态模型中,进程状态分为 运行态,就绪态,阻塞态。 在五态模型中,进程状态分为 新建态、终止态,运行态&a…

服务雪崩预防Sentinel

服务雪崩效应 在分布式系统中,由于网络原因或自身的原因,服务一般无法保证 100% 可用。如果一个服务出现了 问题,调用这个服务就会出现线程阻塞的情况,此时若有大量的请求涌入,就会出现多条线程阻塞等 待,进而导致服务瘫痪。 由于…

【HTML+CSS+JavaScript】实现鼠标点击烟花效果

文章目录【HTMLCSSJavaScript】实现鼠标点击烟花效果(爆炸型、心型、圆形)一. 效果图二. 鼠标点击烟花效果 - 心型实现代码(1) HTML部分代码(2) CSS部分代码(3) 内部的JavaScript部分代码三. 鼠标点击烟花效果 - 圆型实现代码(1) HTML部分代码(2) CSS部分…

【mysql】优化系列文章之一-索引

mysql优化系列 不是教程,不是官方文档,而是自己实战的点滴记录,不一定适合新手和系统学习者 第一章 mysql索引 文章目录mysql优化系列前言1、Mysql索引2、B Tree2.1.特点2.2. 结构分解2.3. 例题分析2.4. 验证索引2.5.索引插入耗时3. MySQL 中…

Oracle数据库同步复制工具Beedup产品功能(一)

1、全量复制 Beedup全量复制功能通过遍历比对主从库用户模式及其下包含的各类对象来保证主从库的相关对象一致性。 支持角色、用户、架构、登录用户、表 (列定义 主外键 索引)、视图存储过程、函数、触发器、类型、类型体、包、包体、序列、同义词、数据库链接等对象复制全量…

技术干货 | 人大金仓KFS基于分区索引的分片入库技术解析

在之前的文章《技术干货:人大金仓KFS精准过滤和分片并行入库技术解析》中,KFS利用分片并行入库技术,解决了某金融POC数据同步项目中数据入库持续积压问题。经过优化后,在200并发的压测场景中,整体同步性能指标从压测30…

基于BP神经网络、RBF神经网络以及PSO优化的RBF神经网络进行数据的预测(Matlab代码实现)

💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑…

IT30--IT之职能部门(3年之约已满)

IT作为一个职能部门,肯定跟业务不同,具体有哪些事情要做,我们一一道来。 年终规划的二三事 组织体系规划及梳理 预算编制 今天我们先来说说组织体系规划。 1 从愿景使命价值观到行动及思考方法 无论是企业还是部门,软文件建设肯…

【信息检索与数据挖掘期末笔记】(六)Link Analysis

Web图 将Web当做有向图 节点:网页 边:超链接 PageRank 不同网页的重要性是不同的,在web-graph中,节点之间的连接性有巨大的差异。我们根据链接结果来对网页进行排序 想法:用链接来投票 如果有更多的链接指向一个网…

Linux Shell 编程,Shell 变量详解

Linux Shell 编程,Shell 变量详解1.第一个shell脚本2.Shell 变量初探3.位置参数变量4.预定义变量1.第一个shell脚本 打开文本编辑器(可以使用 vi/vim 命令来创建文件),新建一个文件 hello.sh,扩展名为 sh(sh代表shell&#xff09…