秀!一篇文章就学会了用Python拆分字符串,提取关键字

目录

1、split()函数

2、os.path.split()函数

split():拆分字符串。通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list)

os.path.split():按照路径将文件名和路径分割开

1. split()函数

语法:str.split(str="",num=string.count(str))[n]

参数说明:

str:表示为分隔符,默认为空格,但是不能为空(’’)。若字符串中没有分隔符,则把整个字符串作为列表的一个元素

num:表示分割次数。如果存在参数num,则仅分隔成 num+1个子字符串,并且每一个子字符串可以赋给新的变量

[n]:表示选取第n个分片

注意:当使用空格作为分隔符时,对于中间为空的项会自动忽略

描述

Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串

语法

split() 方法语法:

str.split(str="", num=string.count(str)).

参数

  • str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
  • num -- 分割次数。默认为 -1, 即分隔所有。

返回值

返回分割后的字符串列表。

2. os.path.split()函数

语法:os.path.split(‘PATH’)

参数说明:

1.PATH指一个文件的全路径作为参数:

2.如果给出的是一个目录和文件名,则输出路径和文件名

3.如果给出的是一个目录名,则输出路径和为空文件名

二、分离字符串

string = “www.gziscas.com.cn

1.以’.'为分隔符

print(string.split(’.’))

[‘www’, ‘gziscas’, ‘com’, ‘cn’]

2.分割两次

print(string.split(’.’,2))

[‘www’, ‘gziscas’, ‘com.cn’]

3.分割两次,并取序列为1的项

print(string.split(’.’,2)[1])

gziscas

4.分割两次,并把分割后的三个部分保存到三个文件

u1, u2, u3 =string.split(’.’,2)

print(u1)—— www

print(u2)—— gziscas

print(u3) ——com.cn

三、分离文件名和路径

import os

print(os.path.split(’/dodo/soft/python/’))

(’/dodo/soft/python’, ‘’)

print(os.path.split(’/dodo/soft/python’))

(’/dodo/soft’, ‘python’)

四、实例

str=“hello boywww.baidu.com]>byebye”

print(str.split("[")[1].split("]")[0])

3. 示例:

将以下列表中的字符串提取中文名、英文名、个人成就,并打印出来!

programmers = [
  "约翰·巴科斯(JohnWarnerBackus), 创建了Fortran语言",
  "阿兰·库珀(Alan Cooper), 开发了Visual Basic语言",
  "詹姆斯·高斯林(James Gosling), 开发了Java语言",
  "安德斯·海尔斯伯格(Anders Hejlsberg), 开发了Turbo Pascal、Delphi、C#以及TypeScript",
  "丹尼斯·里奇(Dennis MacAlistair Ritchie), 发明了C语言",
  "比雅尼·斯特劳斯特鲁普(Bjarne Stroustrup), 他以创造C++编程语言而闻名,被称为“C++之父”",
  "吉多·范罗苏姆(Guido van Rossum), 创造了 Python"
]

#!/usr/bin/env python3
# -*- encoding: utf-8 -*-
'''
@File : string_split_get.py
@Time : 2024/1/27 09:20:44
@Author : Admin 
@Version : 1.0
@Software: Visual Studio Code
'''

programmers = [
  "约翰·巴科斯(JohnWarnerBackus), 创建了Fortran语言",
  "阿兰·库珀(Alan Cooper), 开发了Visual Basic语言",
  "詹姆斯·高斯林(James Gosling), 开发了Java语言",
  "安德斯·海尔斯伯格(Anders Hejlsberg), 开发了Turbo Pascal、Delphi、C#以及TypeScript",
  "丹尼斯·里奇(Dennis MacAlistair Ritchie), 发明了C语言",
  "比雅尼·斯特劳斯特鲁普(Bjarne Stroustrup), 他以创造C++编程语言而闻名,被称为“C++之父”",
  "吉多·范罗苏姆(Guido van Rossum), 创造了 Python"
]
 
def fielt(sour):
    cn =sour.split("(")[0]  #按(左括号拆分字符串sour,并将拆分后的第一个值赋给变量 cn
    en =sour.split("(")[1].split(")")[0] # 先按(左括号拆分字符串sour,取拆分后的第2个字符串,然后再将取到的字符串按右括号拆分,取其中第一个字符串,与 en1 = sour.split("(")[1], en = en1.split(")")[0]的结果一致
    achievement=sour.split(",")[1] # 按,拆分字符串sour,取拆分后的第2个字符串
    return cn,en,achievement

def get_info(): #定义一个获取函数
    for i in range(len(programmers)):   # 通过for循环遍历列表programmers
        w,e,r=fielt(programmers[i])    # 调用fielt()数,其中将programmers的第i个字符串作为参数传给fielt()数
        print(f"name_cn: ",w,"name_en:",e,"achivement:",r)

if __name__ == '__main__':
    get_info()

运行结果:

name_cn:  约翰·巴科斯 name_en: JohnWarnerBackus achivement:  创建了Fortran语言
name_cn:  阿兰·库珀 name_en: Alan Cooper achivement:  开发了Visual Basic语言
name_cn:  詹姆斯·高斯林 name_en: James Gosling achivement:  开发了Java语言
name_cn:  安德斯·海尔斯伯格 name_en: Anders Hejlsberg achivement:  开发了Turbo Pascal、Delphi、C#以及TypeScript
name_cn:  丹尼斯·里奇 name_en: Dennis MacAlistair Ritchie achivement:  发明了C语言
name_cn:  比雅尼·斯特劳斯特鲁普 name_en: Bjarne Stroustrup achivement:  他以创造C++编程语言而闻名,被称为“C++之父”
name_cn:  吉多·范罗苏姆 name_en: Guido van Rossum achivement:  创造了 Python

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风云说通信

支持小编为您创造更多干货,谢谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值