在leetcode上做了一个题目涉及到字符串(str)和列表(list)的转换,在此来总结一下
文章目录
- 一、字符串(str) >>> 列表(list)
- 1. 直接`list(str)`分解字符串
- 2. 使用`str.split()`通过指定分隔符对字符串进行切片——输出的是一个列表list
- 二、列表(list)>>> 字符串(str)
- 1. 使用`str.join()`方法把单个字符串用另一个样式连接在一起
一、字符串(str) >>> 列表(list)
1. 直接list(str)分解字符串
str1 = '12345'
list1 = list(str1)
print(list1) #['1', '2', '3', '4', '5']
str2 = 'hello'
list2 = list(str2) #['h', 'e', 'l', 'l', 'o']
print(list2)
str3 = '123 xpt'
list3 = list(str3)
print(list3) #['1', '2', '3', ' ', 'x', 'p', 't']
2. 使用str.split()通过指定分隔符对字符串进行切片——输出的是一个列表list
语法:str.split(str="", num=string.count(str))
-
str
– 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。 -
num
– 分割次数。默认为 -1, 即分隔所有。 - 如果参数
num
有指定值,则分隔成num+1
个子字符串
# 以空格为分隔符
str1 = '123 hello xpt '
list1 = str1.split() #or list2 = str2.split(' ')
print(list1) #['123', 'hello', 'xpt']
# 以'.'为分隔符
str2 = 'www.baidu.com'
list2 = str2.split('.')
print(list2) #['www', 'baidu', 'com']
# 以'i'为分隔符,num设为1(分隔成num+1=2个子字符串)
str3 = 'this is string example'
list3 = str3.split('i', 1)
print(list3) #['th', 's is string example']
二、列表(list)>>> 字符串(str)
注意:列表转字符串,前提是列表里是字符串
1. 使用str.join()
方法把单个字符串用另一个样式连接在一起
语法:str.join(sequence)
- 将
sequence
序列中的元素以指定的字符(分隔符)str
连接生成一个新的字符串。 -
str
–分隔符,可以为空 -
sequence
– 要连接的元素序列。(例如,字符串、元组、字典、列表)
list1 = ['1', '2', '3', '4', '5']
list2 = ['123', 'hello', 'xpt']
list3 = ['www', 'baidu', 'com']
str1 = "".join(list1)
str2 = " ".join(list2)
str3 = ".".join(list3)
print(str1)
print(str2)
print(str3)
#输出
# 12345
# 123 hello xpt
# www.baidu.com