82. Python split方法-分割字符串

news2024/11/13 16:14:38

82. split方法-分割字符串

文章目录

  • 82. split方法-分割字符串
    • 1. 什么是split( )函数
    • 2. split( )方法的语法格式如下:
    • 3. 实操练习
    • 4. 列表索引取值知识回顾
    • 5. 用split方法分解网址提取有效信息
    • 6. 从地址信息中拆分省、市、区信息

1. 什么是split( )函数

split[splɪt]:使分离。

【功能】

把一个字符串按照指定的分隔符切分为字符串列表。

在这里插入图片描述

2. split( )方法的语法格式如下:

split( )方法由6部分组成:

str.split(sep=,maxsplit=)
  1. str是要进行分隔的字符串。

  2. 英文小圆点.

  3. 方法名split

  4. 英文圆括号( )

  5. sep是方法的第1个参数。

sep用于指定分割符。可以包含多个字符,默认为NONE,即所有空字符(包括空格、换行符\n等)。

  1. maxsplit是方法的第2个参数。

用于指定分割的次数。如果不指定,则分割次数没有限制。

【返回值】

返回的是一个字符串列表。

【代码示例】

s = "A*BC*DE"
print("s的数据类型为:",type(s))
l = s.split("*")    # split方法,作用是分割字符串
print("l的数据类型为:",type(l))
print("分割后l列表的第1个元素:",l[0])
print("分割后l列表的第2个元素:",l[1])
print("分割后l列表的第3个元素:",l[2])

【终端输出】

s的数据类型为: <class 'str'>
l的数据类型为: <class 'list'>
分割后l列表的第1个元素: A
分割后l列表的第2个元素: BC
分割后l列表的第3个元素: DE

3. 实操练习

s = "2,4,6,8"
print(type(s))
l = s.split(",")
print(l)
print(type(l))

【终端输出】

<class 'str'>
['2', '4', '6', '8']
<class 'list'>

【代码解析】

s的数据类型是字符串。

字符串中的字符都是用英文逗号进行分隔的。

l = s.split(",")

l 是变量名,数据类型为列表。

s是要进行分隔的字符串。

split是方法名。

括号中的","就是参数sep的值,即用英语逗号进行分割。

用英语逗号进行分割的意思就是遇到逗号则逗号前的即为列表的一个单独元素。

这里只有一个参数,没有maxsplit,表示可以进行无限次的分割。

字符串 "2,4,6,8"分割的结果就为[‘2’, ‘4’, ‘6’, ‘8’]。

【分隔次数为2次】

s = "2,4,6,8"
l = s.split(",",2)
print(l)

【终端输出】

['2', '4', '6,8']

这里的maxsplit=2,意思就是只分割2次。

第1次将2分割出来。

第2次将4分割出来。

分割2次后没有多余的分割次数了,因此剩下的6,8为一个单独的元素。

【分割10次】

s = "2,4,6,8"
l = s.split(",",10)
print(l)

【终端输出】

['2', '4', '6', '8']

【其他分割符示例】

str1 = "https://python123.io/student/home"
list1 = str1.split(":")  # 用英文冒号进行分割
list2 = str1.split("/")  # 用/进行分割
list3 = str1.split(".")  # 用.进行分割
print(list1)
print(list2)
print(list3)

【终端输出】

['https', '//python123.io/student/home']
['https:', '', 'python123.io', 'student', 'home']
['https://python123', 'io/student/home']

str1中只有1个冒号,用英文冒号进行分割时,会将str1字符串分割成2个部分,冒号前的内容是列表的第1个元素,后面的内容是列表的第2个元素。

字符串分割后,分割符不会出现在列表里。

这里用英文冒号作为分割符,分割后的列表里就不会再有英文冒号了。

4. 列表索引取值知识回顾

【语法】

列表名[索引]

列表名[索引][索引]

列表本身[索引]

# 新建一个str列表
str_list = ["当归", "人参",  "黄芪"]

print(str_list[0])
print(str_list[1])
print(str_list[2])

【终端输出】

当归
人参
黄芪

列表的⚠️正索引从左往右开始编号,编号从0开始!

在这里插入图片描述

str_list[0]取到列表的第1元素当归
str_list[1]取到列表的第2元素人参
str_list[2]取到列表的第3元素黄芪

原文链接如下:

27. Python 列表的索引取值

5. 用split方法分解网址提取有效信息

某网页的网址为: “https://python123.io/student/home”

任务是提取python123

【代码示例】

str1 = "https://python123.io/student/home"
print(str1.split("//"))

【终端输出】

['https:', 'python123.io/student/home']

首先用//作为分割符,将字符串分隔为2个部分。

str1 = "https://python123.io/student/home"
print(str1.split("//")[1])

【终端输出】

python123.io/student/home

split方法返回的值是一个列表。

添加[1]的作用是提取列表的第2个元素。

str1 = "https://python123.io/student/home"
print(str1.split("//")[1].split("."))

【终端输出】

['python123', 'io/student/home']
.split(".")

提取之后再添加一个.split(".")对列表的第2个元素即python123.io/student/home进行分割。

分割后得到一个新的列表。

str1 = "https://python123.io/student/home"
print(str1.split("//")[1].split(".")[0])

【终端输出】

python123

添加[0]的作用是提取列表的第1个元素,到这里就取到了我们想要的值。

6. 从地址信息中拆分省、市、区信息

【准备工作】

  1. 新建一个名为82的文件夹。

  2. 82文件夹中新建一个地址.txt文件。

地址.txt文件中写入如下内容:

江苏省 苏州市 吴江区 吴江经济技术开发区亨通路
安徽省 滁州市 明光市 三界镇中心街10000号
山东省 潍坊市 寿光市 圣城街道潍坊科技学院
吉林省 长春市 二道区 东盛街道彩虹风景
福建省 厦门市 湖里区 江头街道厦门市湖里区祥店福满园小区

  1. 82文件夹中新建一个82.py文件。

  2. 用VScode编辑器打开82.py文件,在该文件中编写代码。

【体验代码】

f = open('地址.txt', 'r')
l = f.readlines()
print(l)
print(type(l))
f.close()

【终端输出】

['江苏省 苏州市 吴江区 吴江经济技术开发区亨通路\n', '安徽省 滁州市 明光市 三界镇中心街10000号\n', '山东省 潍坊市 寿光市 圣城街道潍坊科技学院\n', '吉林省 长春市 二道区 东盛街道彩虹风景\n', '福建省 厦门市 湖里区 江头街道厦门市湖里区祥店福满园小区']
<class 'list'>

用open函数打开地址.txt文件,返回文件对象f

用readlines操作文件对象f,返回的是一个列表。

readlines方法的作用是按行读取文件内容。

f = open('地址.txt', 'r')
for i in f.readlines():
    print(type(i))
    print(i,end="")
f.close()

【终端输出】

<class 'str'>
江苏省 苏州市 吴江区 吴江经济技术开发区亨通路
<class 'str'>
安徽省 滁州市 明光市 三界镇中心街10000号
<class 'str'>
山东省 潍坊市 寿光市 圣城街道潍坊科技学院
<class 'str'>
吉林省 长春市 二道区 东盛街道彩虹风景
<class 'str'>
福建省 厦门市 湖里区 江头街道厦门市湖里区祥店福满园小区
for i in f.readlines():

f.readlines():是列表,用for循环从列表中依次取值。

这里的i是字符串类型。

f = open('地址.txt', 'r')
for i in f.readlines():
    l = i.split()
    print(l)
f.close()

【终端输出】

['江苏省', '苏州市', '吴江区', '吴江经济技术开发区亨通路']
['安徽省', '滁州市', '明光市', '三界镇中心街10000号']
['山东省', '潍坊市', '寿光市', '圣城街道潍坊科技学院']
['吉林省', '长春市', '二道区', '东盛街道彩虹风景']
['福建省', '厦门市', '湖里区', '江头街道厦门市湖里区祥店福满园小区']
i.split()

用split方法将字符串进行分割,分割符为空格即split()

分割后的省市区就变成了单独的元素。

用列表索引的取值方法即可提取我们需要的元素。

【提取省份】

f = open('地址.txt', 'r')
for i in f.readlines():
    l = i.split()
    print(l[0])
f.close()

【终端输出】

江苏省
安徽省
山东省
吉林省
福建省

【提取市】

f = open('地址.txt', 'r')
for i in f.readlines():
    l = i.split()
    print(l[1])
f.close()

【终端输出】

苏州市
滁州市
潍坊市
长春市
厦门市

【提取区】

f = open('地址.txt', 'r')
for i in f.readlines():
    l = i.split()
    print(l[2])
f.close()

【终端输出】

吴江区
明光市
寿光市
二道区
湖里区

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

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

相关文章

深度学习模型压缩与优化加速

1. 简介 深度学习&#xff08;Deep Learning&#xff09;因其计算复杂度或参数冗余&#xff0c;在一些场景和设备上限制了相应的模型部署&#xff0c;需要借助模型压缩、系统优化加速、异构计算等方法突破瓶颈&#xff0c;即分别在算法模型、计算图或算子优化以及硬件加速等层…

《LearnUE——基础指南:上篇—2》——GamePlay架构之Level和World

目录 听说世界是由多个Level组成的 1.2.1 引言 1.2.2 建造大陆&#xff08;ULevel&#xff09; 1.2.3构建世界&#xff08;World&#xff09; 1.2.4总结 听说世界是由多个Level组成的 1.2.1 引言 上小节谈到Actor和Component的关系&#xff0c;UE利用Actor的概念组成了世…

GitLab统计代码量

gitlab官方文档&#xff1a;https://docs.gitlab.com/ee/api/index.html 1、生成密钥 登录gitlab&#xff0c;编辑个人资料&#xff0c;设置访问令牌 2、获取当前用户所有可见的项目 接口地址 GET请求 http://gitlab访问地址/api/v4/projects?private_tokenxxx 返回参数 …

【文章学习系列之模型】Non-stationary Transformers

本章内容 文章概况总体结构主要模块Series Stationarization&#xff08;序列平稳化模块&#xff09;De-stationary Attention&#xff08;逆平稳化注意力模块&#xff09; 实验结果消融实验总结 文章概况 《Non-stationary Transformers:Exploring the Stationarity in Time …

Docker 存储

Docker 存储 docker 默认存储方式docker 持久化存储Volumes &#xff08;卷&#xff09;简介推荐使用情况 Bind mounts &#xff08;绑定挂载&#xff09;简介推荐使用情况 绑定挂载与卷注意点 docker 非持久化存储tmpfs mounts &#xff08;tmpfs 挂载&#xff09;简介推荐使用…

leetcode100——相同的树

文章目录 题目详情分析Java完整代码 题目详情 leetcode100 给你两棵二叉树的根节点 p 和 q &#xff0c;编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同&#xff0c;并且节点具有相同的值&#xff0c;则认为它们是相同的。 示例&#xff1a; 分析 主要想法…

vue3头像上传组件

用到了自定义组件v-model的双向绑定使用input的typefile这个原生html元素&#xff0c;通过监听change事件&#xff0c;获取到选择的文件&#xff08;注意&#xff0c;选择完文件值后&#xff0c;要把这个隐藏的input的typefile元素的value置为空&#xff0c;否则&#xff0c;下…

【关于C++中----异常】

文章目录 一、C语言中处理错误的方式二、C异常概念三、异常的使用3.1 异常的抛出和捕获3.2 异常的重新抛出3.3 异常安全3.4 异常规范 四、自定义异常体系五、C标准库的异常体系六、异常的优缺点 一、C语言中处理错误的方式 C语言中常见的错误类型包括&#xff1a;语法错误、逻…

访问 virtualbox中的mysql

在 mysql.user 中存储这用户可访问的的host地址 select user,host from user;修改访问权限 可以使用sql语句 use mysql; mysql>update user set host % where user root; flush privileges或者使用mysql的权限语句 use mysql; Grant all on *.* to root% identified b…

深入浅出C++ ——异常

文章目录 一、C语言传统的处理错误的方式二、C异常概念三、异常的使用异常的抛出和捕获异常的重新抛出异常安全异常规范 四、自定义异常体系无、C标准库的异常体系六、异常的优缺点 一、C语言传统的处理错误的方式 C语言传统的处理错误的机制&#xff1a; 终止程序&#xff0…

docker打包部署spring boot应用(mysql+jar+Nginx)

文章目录 一、基本准备二、mysql部署二、jar部署三、Nginx部署 一、基本准备 小唐拿的就是之前放置在我们服务器上的应用进行部署&#xff0c;主要就是mysql和jar还有Vue的部署。 目前已经有的是jar、已经打包好的vue 项目参考&#xff1a;小破站数据大屏可视化&#xff08;…

【IPv6】IPv6有无状态地址分配及IPv6路由

IPv6有无状态区分 有状态可控、可管理。有IP地址管理者&#xff0c;能够识别客户端。根据不同客户端分配对应v6地址&#xff0c;客户端和服务器存在租期及续约。无状态无控、难管理。无IP地址管理者&#xff0c;没人识别客户端。客户端根据网关发送的相同的RA报文内容&#xf…

path/to/sdkmanager --install “cmdline-tools;latest“

执行flutter doctor时、报错Android Studio的命令行工具没有安装& 以及 android-licenses没有同意 其中提示错误语句如标题: path/to/sdkmanager --install "cmdline-tools;latest"之类的, 因为同意条款的时候,日志太多,所以把报错覆盖了.没有截图. 解决方法: …

一个简单的servlet+Jsp+MySQL/Oracle程序

一个简单的servletJspMySQL/oracle程序 1. 创建项目 使用 IDEA 创建一个 Maven 项目. 1.1、File -> New Project Name:javaservlet4 Location:选择要存放的路径 Language:Java Build system:Maven 点击Create按钮 ​​​​​​​1.2、Pom.xml配置 <dependencies…

整数在内存中的存储:原码、反码、补码 大小端字节序

本篇博客会讲解整数在内存中的存储形式&#xff0c;以及整数二进制的3种表示形式&#xff1a;原码、反码、补码&#xff0c;还有大小端的相关知识点。相信读完本篇博客&#xff0c;大家对内存的了解会上一个台阶。 注意&#xff1a;本篇博客讨论的是整数在内存中的存储&#x…

【五一创作】【数学建模】matlab的常用函数运用(1)

文章目录 1. matlab基本常识2. 常用输入输出函数2.1 输出函数2.2 拼接函数&#xff08;字符串的合并&#xff09;2.3 输入函数 3. 求和函数3.1 向量求和3.2 矩阵求和 4. 提取矩阵元素4.1 取第x行第y列的元素4.2 取指定行或列的所有元素4.3 取指定某些行的所有元素 1. matlab基本…

MongoDB聚合操作

文章目录 一、单一聚合二、聚合管道2.1 $match / $project / $count2.2 $limit / $skip / $sort2.3 $group 分组查询2.4 $unwind 展开数组2.5 $lookup 左外连接2.6 $bucket 存储桶 三、MapReduce 提示&#xff1a;以下是本篇文章正文内容&#xff0c;MongoDB 系列学习将会持续更…

域名解析出现错误,该如何解决?

域名作为网络地址&#xff0c;是我们访问网站的必经之路&#xff0c;域名解析就是把你的域名解析成一个ip地址&#xff0c;在使用的过程中遇到域名解析文件异常也是常有的事。如果域名解析出现错误&#xff0c;该怎么解决呢&#xff1f; 一、打开网页时&#xff0c;显示域名解析…

Redis主从复制、哨兵实战

环境&#xff1a;linux centos7.x &#xff0c;虚拟机3台 版本&#xff1a;redis-6.2.6 1.下载安转redis 下载地址 wget https://download.redis.io/releases/redis-6.2.6.tar.gz解压 tar -zxvf redis-6.2.6.tar.gz移动目录 mv redis-6.2.6 /usr/local/redis编译 cd /usr/…

【GORM框架】ORM介绍、GORM简单连接和高级配置详解

博主简介&#xff1a;努力学习的大一在校计算机专业学生&#xff0c;热爱学习和创作。目前在学习和分享&#xff1a;数据结构、Go&#xff0c;Java等相关知识。博主主页&#xff1a; 是瑶瑶子啦所属专栏: GORM框架学习 近期目标&#xff1a;写好专栏的每一篇文章 目录 一、简介…