在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