python: Python中,join列表是指使用指定的分隔符连接字符串列表,以形成一个字符串。有时,当您需要将列表转换为字符串时,这非常有用。例如,将字母表的列表转换为逗号分隔的字符串以保存在文件中。
Python Join List
我们可以使用python字符串的join()函数来连接字符串列表。此函数将可迭代对象
作为参数,而列表是可迭代对象,因此我们可以将其与列表一起使用。此外,列表应包含字符串;如果尝试连接整数列表,则将收到错误消息TypeError: sequence item 0: expected str instance, int found
。让我们看一个在Python中连接列表以创建字符串的简短示例。
vowels = ["a", "e", "i", "o", "u"]
vowelsCSV = ",".join(vowels)
print("Vowels are = ", vowelsCSV)
运行上述程序时,将产生以下输出。
Vowels are = a,e,i,o,u
Python连接两个字符串
我们也可以使用join()函数来连接两个字符串。
message = "Hello ".join("World")
print(message) #prints 'Hello World'
为什么 join() 函数在 String 中而不在 List 中?
很多 Python 开发者都会对一个问题产生疑问,为什么 join() 函数是 String 类的一部分而不是 List 类的一部分。难道下面的语法不是更容易记忆和使用吗?
vowelsCSV = vowels.join(",")
关于这个问题,有一个热门的 StackOverflow 问题,我在这里列出了讨论中对我来说很有意义的一些重要观点。
主要原因是 join() 函数 可以与任何 可迭代对象 一起使用,而结果始终是一个字符串,因此将此函数放在字符串 API 中而不是所有可迭代类中是有道理的。
连接包含多种数据类型的列表
让我们看一个程序,我们将尝试连接包含多种数据类型的列表项。
names = ['Java', 'Python', 1]
delimiter = ','
single_str = delimiter.join(names)
print('String: {0}'.format(single_str))
让我们看看这个程序的输出: 这只是一个演示,包含多种数据类型的列表不能使用
join()
函数组合成单个字符串。列表必须只包含字符串值。
使用join函数拆分字符串
我们可以使用join()
函数根据指定的分隔符拆分字符串。
names = 'Python'
delimiter = ','
single_str = delimiter.join(names)
print('String: {0}'.format(single_str))
这表明当字符串作为join()函数的参数传递时,它会按字符和指定的分隔符拆分。
使用split()函数
除了使用join()
函数拆分外,还可以使用split()
函数来拆分字符串,它的工作方式几乎与join()
函数相同。让我们看一个代码片段:
names = ['Java', 'Python', 'Go']
delimiter = ','
single_str = delimiter.join(names)
print('String: {0}'.format(single_str))
split = single_str.split(delimiter)
print('List: {0}'.format(split))
让我们看看这个程序的输出: 我们再次使用相同的分隔符将字符串拆分回原始列表。
只分割 n 次
在上一个示例中我们展示的 split()
函数还接受一个可选的第二个参数,表示分割操作应该执行的次数。以下是一个演示其用法的示例程序:
names = ['Java', 'Python', 'Go']
delimiter = ','
single_str = delimiter.join(names)
print('String: {0}'.format(single_str))
split = single_str.split(delimiter, 1)
print('List: {0}'.format(split))
让我们看一下这个程序的输出: 这次,分割操作仅执行了一次,因为我们在
split()
函数参数中提供了。这就是在 Python 中连接列表创建字符串以及使用 split() 函数再次获取原始列表的全部内容。
Source:
https://www.digitalocean.com/community/tutorials/python-join-list