前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >python全栈开发《65.字符串与列表之间的转换》

python全栈开发《65.字符串与列表之间的转换》

作者头像
清菡
发布2024-11-21 19:38:48
发布2024-11-21 19:38:48
13100
代码可运行
举报
文章被收录于专栏:清菡软件测试清菡软件测试
运行总次数:0
代码可运行

1.字符串转列表的函数:split

1.1split的功能

将字符串以一定规则切割转成列表。

1.2split的用法

string:是需要被转换成列表的字符串。

sep:是一个符号。split将按照这个符号对字符串进行切割。

如果不填写(sep参数默认是个空格),会把当前字符串整个放入一个列表中。

如果字符串中有空格,且不填写sep这个参数,那么split函数就会默认按照空格将字符串进行切割。

maxsplit:是希望被切割的次数。默认是无限制次数。

split函数会返回一个新的列表。

代码语言:javascript
代码运行次数:0
运行
复制
info = 'my name is dewei'
info_list = info.split()
print(info_list)

运行结果:

代码语言:javascript
代码运行次数:0
运行
复制
['my', 'name', 'is', 'dewei']

定义了一个字符串info,这个字符串的每个单词之间用空格隔开。

通过info调用内置函数split()执行,()内没有填写任何参数,所以sep默认是按照空格来填写的。

如果字符串(这里指info)中有空格,会按照空格切割。没有空格,会将字符串以一个成员的形式放入列表中。

当然,这里info中是有空格的,执行split函数,返回了一个列表并赋值给info_list变量。

1.3代码

例1:

代码语言:javascript
代码运行次数:0
运行
复制
# coding:utf-8

a ='abc'
print(a.split())

b ='a,b,cd'
print(b.split(','))

c = 'a|b|c|d'
print(c.split('|',1))#只用|切割一次。

d = 'a|b|c|d'
print(d.split('|',2))#只用|切割两次。

运行结果:

代码语言:javascript
代码运行次数:0
运行
复制
['abc']
['a', 'b', 'cd']
['a', 'b|c|d']
['a', 'b', 'c|d']

例2:

代码语言:javascript
代码运行次数:0
运行
复制
f = ''
print(f.split(''))

运行结果:报错。

代码语言:javascript
代码运行次数:0
运行
复制
Traceback (most recent call last):
  File "/Users/llq/PycharmProjects/pythonlearn/change/change_str_list.py", line 16, in <module>
    
print(f.split(''))
ValueError: empty separator

例3:

代码语言:javascript
代码运行次数:0
运行
复制
f = ' a~b~c '
print(f.split(''))

运行结果:报错。

代码语言:javascript
代码运行次数:0
运行
复制
/Users/llq/PycharmProjects/pythonlearn/pythonlearn/change/bin/python /Users/llq/PycharmProjects/pythonlearn/change/change_str_list.py 
Traceback (most recent call last):
  File "/Users/llq/PycharmProjects/pythonlearn/change/change_str_list.py", line 16, in <module>
    
print(f.split(''))
ValueError: empty separator

进程已结束,退出代码为 1

split函数的sep参数是不能传一个空字符串的。

2.列表转字符串的函数:join

2.1join的功能

将列表以一定规则转成字符串。(实际上,不仅仅是列表,包括元组和集合,都可以用join函数转成字符串。这里用列表作一个代表。)

2.2join的用法

'sep':是一个字符串。sep是生成字符串的规则符号。通过'sep'调用join函数。

interable:代表列表、字符串、元组和集合。

join函数会返回一个字符串。()中的interable的每个成员会通过join函数前面的'sep'连接起来。

代码语言:javascript
代码运行次数:0
运行
复制
test = ['a','b','c']
new_str = '.'.join(test)
print(new_str)

运行结果:

代码语言:javascript
代码运行次数:0
运行
复制
a.b.c

2.3代码

例1:列表中的成员是数字,通过join函数转换成字符串,运行后报错。

代码语言:javascript
代码运行次数:0
运行
复制
test2 = [1,'a','b']
print('|'.join(test2))

运行结果:

代码语言:javascript
代码运行次数:0
运行
复制
Traceback (most recent call last):
  File "/Users/llq/PycharmProjects/pythonlearn/change/change_str_list.py", line 23, in <module>
    
print('|'.join(test2))
TypeError: sequence item 0: expected str instance, int found

只要列表里有一个是数字成员,就不能通过join函数进行转换。

例2:列表中的成员是字典,通过join函数转换成字符串,运行后报错。

代码语言:javascript
代码运行次数:0
运行
复制
test3 = [{'name':'dewei'},{'name':'xiaomu'}]
print('.'.join(test3))

运行结果:

代码语言:javascript
代码运行次数:0
运行
复制
Traceback (most recent call last):
  File "/Users/llq/PycharmProjects/pythonlearn/change/change_str_list.py", line 26, in <module>
    
print('.'.join(test3))
TypeError: sequence item 0: expected str instance, dict found

例3:列表中的成员是元组,通过join函数转换成字符串,运行后报错。

代码语言:javascript
代码运行次数:0
运行
复制
test3 = [(1,),('a','b')]
print('.'.join(test3))

运行结果:

代码语言:javascript
代码运行次数:0
运行
复制
Traceback (most recent call last):
  File "/Users/llq/PycharmProjects/pythonlearn/change/change_str_list.py", line 26, in <module>
    
print('.'.join(test3))
TypeError: sequence item 0: expected str instance, tuple found

例4:列表中的成员是None和True,通过join函数转换成字符串,运行后报错。

代码语言:javascript
代码运行次数:0
运行
复制
test3 = [None,True]
print('.'.join(test3))

运行结果:

代码语言:javascript
代码运行次数:0
运行
复制
Traceback (most recent call last):
  File "/Users/llq/PycharmProjects/pythonlearn/change/change_str_list.py", line 26, in <module>
    
print('.'.join(test3))
TypeError: sequence item 0: expected str instance, NoneType found

以上总结:只有字符串类型的列表才可以通过join进行合并。

3.代码

3.1split函数和join函数结合起来:

过去将字符串反转,最快的方式是通过索引的形式。这一次采用字符串,帮助它们排序。也就是sort功能。

代码语言:javascript
代码运行次数:0
运行
复制
sort_str = 'a b d f i p q c'
sort_list = sort_str.split(' ')#sep里有一个空格,不是一个空字符串。
print(sort_list)
sort_list.sort()
print(sort_list)
sort_str = ' '.join(sort_list)
print(sort_str)

运行结果:

代码语言:javascript
代码运行次数:0
运行
复制
/Users/llq/PycharmProjects/pythonlearn/pythonlearn/change/bin/python /Users/llq/PycharmProjects/pythonlearn/change/change_str_list.py 
['a', 'b', 'd', 'f', 'i', 'p', 'q', 'c']
['a', 'b', 'c', 'd', 'f', 'i', 'p', 'q']
a b c d f i p q

3.2sorted函数:将字符串转换成列表并排序。

sorted函数可以对任何的类型进行处理,sort函数只是列表的内置函数。

代码语言:javascript
代码运行次数:0
运行
复制
sort_str_new = 'abdfipqc'
print(sort_str_new)
res = sorted(sort_str_new)
print(res)
print(''.join(res))

运行结果:

代码语言:javascript
代码运行次数:0
运行
复制
/Users/llq/PycharmProjects/pythonlearn/pythonlearn/change/bin/python /Users/llq/PycharmProjects/pythonlearn/change/change_str_list.py 
abdfipqc
['a', 'b', 'c', 'd', 'f', 'i', 'p', 'q']
abcdfipq

进程已结束,退出代码为 0

注意:split函数和join函数都是字符串的内置函数。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-11-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 清菡软件测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.字符串转列表的函数:split
    • 1.1split的功能
    • 1.2split的用法
    • 1.3代码
  • 2.列表转字符串的函数:join
    • 2.1join的功能
    • 2.2join的用法
    • 2.3代码
  • 3.代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档