内容概要:如何把列表中的元素拼接为一个字符串呢?本文介绍了采用 join() 函数的解决方法。
问题:有一个列表,比如:letters=[‘a’,‘b’,‘c’],想要把列表的元素连续显示出来,应该怎么办?
解决办法:
1.设置 end=’’
如何使Python中的print()语句运行结果不换行 的方法,设置 end=’’。
如下代码所示:
1
2
3
|
letters = [ 'a' , 'b' , 'c' ] for letter in letters: print (letter,end = '') |
运行结果为:
abc
2.拼接字符串(string)
把列表中的元素拼接为一个字符串(string
),然后显示字符串。
这里用到了一个神奇的函数:join() ,它可以把列表拼接转换成一个字符串,用法为:字符串=‘分隔符’.join(列表)。
如下代码所示:
1
2
|
letters_str = ''.join(letters) print (letters_str) |
运行结果为:
abc
另一种情况也适合用 join() 函数:比如有一个词汇构成的列表,需要把这几个词汇组成一个短语。可以把分隔符设置为空格符,用' '.join()实现组合。
代码示例如下:
1
2
3
|
words = [ 'practice' , 'makes' , 'perfect' ] phrase = ' ' .join(words) print (phrase) |
运行结果为:
practice makes perfect
不仅如此,我们还可以在 join() 函数内调用其它函数,如大小写转换、类型转换等,从而一次实现多个功能。这就要通过在 join() 函数中使用 list comprehension
(列表推导式)来实现,即:join(function(e) for e in list)
。
3.举例
(1)比如,列表中的字符既有大写,又有小写。想在拼接的同时,把字符都转换为大写,应该怎么做呢?
方法:在 join() 函数中加入大小写转换的函数 upper()。
代码示例如下:
1
2
3
|
letters = [ 'a' , 'ab' , 'ac' , 'D' ] lettersStr = ''.join(e.upper() for e in letters) print (lettersStr) |
运行结果为:
AABACD
(2)前面提到,join() 函数是把列表的元素拼接为字符串。因此,列表中的元素需要是 string(字符串)类型。如果是一个数字列表,可以使用 join() 函数吗?
可以。只要在join()
函数中加入类型转换,将数字转换为 string
型即可。
代码示例如下:
1
2
3
|
nums = [ 1 , 2 , 3.6 ] numsStr = ''.join( str (e) for e in nums) print (numsStr) |
运行结果为:
123.6
(3)除了用 Python
的函数,我们还可以应用自定义的函数。
比如,下面的代码先定义了一个convert()
函数,如果字母是 a 或 A,那么保持不变;其它字母则转换为小写。然后,在 join() 函数中应用 convert() 函数。
1
2
3
4
5
6
7
8
|
def convert(letter): if letter.lower() = = 'a' : return letter else : return letter.lower() letters = [ 'a' , 'B' , 'A' , 'C' ] lettersStr = ''.join(convert(e) for e in letters) print (lettersStr) |
运行结果为:
abAc
到此这篇关于如何在Python 中使用 join() 函数把列表拼接成一个字符串的文章就介绍到这了,更多相关 join() 把列表拼成字符串内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
参考文章:
https://stackabuse.com/python-convert-list-to-string/
原文链接:https://blog.csdn.net/applebear1123/article/details/123620018