在 Python 中,如果想要将一个列表转换为一个字符串,常用的有以下 2 种方式。
- 使用 join() 方法。
- 使用 str() 函数。
提示: 将列表转字符串主要是使用 join() 方法,而将字符串转列表主要是使用 list() 函数。
使用 join() 方法
join() 是 Python 字符串的一个方法,它将可迭代对象(如列表)的所有元素使用 “指定分隔符” 来连接成一个字符串,然后返回连接后的结果。
语法:
'分隔符'.join(iterable)说明:
join() 方法接收单个参数。
iterable(必选):是一个可迭代对象。
示例 1:join() 的分隔符为空
languages = ['Python', 'Java', 'C++', 'Go', 'Rust']
result = ''.join(languages)
print(result)
print(type(result))运行结果如下。
PythonJavaC++GoRust
<class 'str'>示例 2:join() 使用指定分隔符
languages = ['Python', 'Java', 'C++', 'Go', 'Rust']
result = '*'.join(languages)
print(result)运行结果如下。
Python*Java*C++*Go*Rust示例 3:列表里有数字
nums = [1, 2, 3, 4, 5]
result = '-'.join(nums)
print(result)运行结果如下。
(报错)TypeError: sequence item 0: expected str instance, int found分析:
join() 方法有一个极其严格的硬性规定:列表中的所有元素必须都是字符串(str)类型! 如果你的列表中包含了整数(int)或浮点数(float),直接使用 join() 会导致程序报错(TypeError)。
我们可以结合前面学过的 “列表推导式”,或者使用 map() 函数,先将列表里的所有数字统统转换为字符串,然后再使用 join() 进行拼接:
# 正确写法 1:使用列表推导式(强烈推荐)
nums = [1, 2, 3, 4, 5]
result = '-'.join([str(i) for i in nums])
print(result)
# 正确写法 2:使用 map() 函数
nums = [1, 2, 3, 4, 5]
result = '-'.join(map(str, nums))
print(result)使用 str() 函数
str() 是 Python 的一个内置函数,它用于返回给定对象的字符串表示形式。换一句话来说就是,str() 函数可以将一个列表转换为一个字符串。
语法:
str(object)说明:
str() 函数接收单个参数。
object(可选):是任意对象(Python 一切皆对象)。如果未提供 object,则 str() 返回空字符串。
示例 4:str() 将列表转换为字符串
colors = ['red', 'green', 'blue']
print(str(colors)) # "['red', 'green', 'blue']"运行结果如下。
['red', 'green', 'blue']