1.1 Python基础_字符串相关操作

1. join() 方法 —— 连接字符串、元组、列表和字典

语法:'Separator'.join(iteration)

  • 'Separator' : 表示分隔符,即 用什么连接字符串;逗号,分号,斜杠等等
  • iteration:内元素为字符串的可迭代的类型(只接收一个迭代的参数)
  • 例如:
    • ','.join([str1, str2, str3, str4])
    • 用 中文逗号 把 多个字符串 连接在一起

返回类型:

  • 字符串 类型

【1】举例——代码如下:

  • 用 中文逗号 把 多个字符串 连接在一起
str1 = '望长城内外'
str2 = '惟余莽莽'
str3 = '大河上下'
str4 = '顿失滔滔'
jo = ','.join([str1, str2, str3, str4])  # 用 中文逗号 把 多个字符串 连接在一起
print(jo,"\n")

输出结果为:

望长城内外,惟余莽莽,大河上下,顿失滔滔

【2】举例——代码如下:

  • 不用任何符号,把列表里的字符串连接在一起
list = ["树", "叶", "儿", "黄", "落", "百", "草", "也", "凋", "零"]
jo = ''.join(list) # 不用任何符号,把列表里的字符串连接在一起
print(jo,"\n")

输出结果为:

树叶儿黄落百草也凋零 

【3】举例——代码如下:

  • 用 英文逗号 把 列表里的字符串连接在一起
list1 = ['张凤', '24', '160', '90', '本科', '会计']
jo1 = ','.join(list1) # 用 英文逗号 把 列表里的字符串连接在一起
print(jo1)

输出结果为:

张凤,24,160,90,本科,会计

【4】举例——代码如下:

  • 循环列表,用 英文逗号 把 列表里的字符串连接在一起
list = [
    ['姓名', '年龄', '身高/m', '体重/斤', '职业' ],
    ['张凤', '24', '160', '90', '本科', '会计'], 
    ['李新', '28', '165', '105', '本科', '财务'], 
    ['肖明', '26', '175', '112', '大专', 'HR']
    ]
for data in list:  # 循环列表
    injo = ",".join(data) # 用 英文逗号 把 列表里的字符串连接在一起
    injo = injo + '\n'
    print(injo) 

输出结果为:

姓名,年龄,身高/m,体重/斤,职业

张凤,24,160,90,本科,会计

李新,28,165,105,本科,财务

肖明,26,175,112,大专,HR

2. split() 方法 —— 分割字符串

语法:string.split('Separator', maxsplit)

  • string : 要进行分割的字符串
  • 'Separator':分隔符,即 用什么符号 把字符串分隔开;默认是 None,即所有的空字符(空格、换行符、制表符等)
  • maxsplit:可选填参数,指定分割的次数,不指定次数,则不限制分割次数,指定次数,则返回结果列表的元素个数,超过指定次数,列表元素个数以实际分割的字符串为准
  • 注意!(在此方法中,如果不指定 sep 参数,那么也不能指定 maxsplit 参数。)
  • 例如:
    • str1.split()
    • 把 字符串1 用 空字符 分隔开

返回类型:

  • 列表 类型

【1】举例——代码如下:

  • 原字符串内不含空字符,以空字符分割的效果
str = "蒹葭苍苍,白露为霜,所谓伊人,在水一方,溯洄从之,道阻且长,溯游从之,宛在水中央"
st_str = str.split() # 以空字符分割
print(st_str) # 可见字符串内没有空字符串,把字符串用列表原样输出

输出结果为:

['蒹葭苍苍,白露为霜。所谓伊人,在水一方。溯洄从之,道阻且长。溯游从之,宛在水中央。']

【2】举例——代码如下:

  • 原字符串内含空字符,以空字符分割的效果
str = '''
蒹葭苍苍 白露为霜
所谓伊人 在水一方
    溯洄从之,道阻且长
        溯游从之,宛在水中央
'''
st_str = str.split() # 以空字符分割
print(st_str)

输出结果为:

['蒹葭苍苍', '白露为霜', '所谓伊人', '在水一方', '溯洄从之,道阻且长', '溯游从之,宛在水中央']

【3】举例——代码如下:

  • 以 中文逗号 分割
str = "蒹葭苍苍,白露为霜,所谓伊人,在水一方,溯洄从之,道阻且长,溯游从之,宛在水中央"
st_str = str.split(',') # 以 中文逗号 分割
print(st_str)

输出结果为:

['蒹葭苍苍', '白露为霜', '所谓伊人', '在水一方', '溯洄从之', '道阻且长', '溯游从之', '宛在水中央']

【4】举例——代码如下:

  • 以 中文逗号 分割 ,只分割1次
str = "蒹葭苍苍,白露为霜,所谓伊人,在水一方,溯洄从之,道阻且长,溯游从之,宛在水中央"
st_str = str.split(',', 1) # 以 中文逗号 分割 ,只分割1次
print(st_str)

输出结果为:

['蒹葭苍苍', '白露为霜,所谓伊人,在水一方,溯洄从之,道阻且长,溯游从之,宛在水中央']

【5】举例——代码如下:

  • 以 中文逗号 分割 ,只分割9次,超出了分隔符数量,返回的是实际分割的字符串
str = "蒹葭苍苍,白露为霜,所谓伊人,在水一方,溯洄从之,道阻且长,溯游从之,宛在水中央"
st_str = str.split(',', 9) # 以 中文逗号 分割 ,只分割9次,超出了分隔符数量,返回的是实际分割的字符串
print(st_str)

输出结果为:

['蒹葭苍苍', '白露为霜', '所谓伊人', '在水一方', '溯洄从之', '道阻且长', '溯游从之', '宛在水中央']

【6】举例——代码如下:

  • 目标:从 链接 中提取出 subscriptions 字符串
link = 'https://www.jianshu.com/subscriptions#/recommendation'
print(link.split())
print(link.split('/'))
print(link.split('/')[-2])
print(link.split('/')[-2].split('#')[0])

输出结果为:

['https://www.jianshu.com/subscriptions#/recommendation']
['https:', '', 'www.jianshu.com', 'subscriptions#', 'recommendation']
subscriptions#
subscriptions

【7】举例——代码如下:

用 join() 方法 和 split()方法 处理文本中过多的空格

strs1 = '中国    黑龙江省       牡丹江市   某街道          某小区2栋3单元'
print(strs1.split())
print(' '.join(strs1.split()))

输出结果为:

['中国', '黑龙江省', '牡丹江市', '某街道', '某小区2栋3单元']
中国 黑龙江省 牡丹江市 某街道 某小区2栋3单元

本文章使用limfx的vscode插件快速发布