这个函数挺有用的,主要是用于将序列
中的元素
按照指定的字符
进行连接而生成一个新的字符串
。
划重点如下:
- 序列
- 元素
- 指定的字符(字符串)
- 新的字符串
常规
先看看常规的一些常识
语法
str.join(seq)
参数
- seq – 包含元素的序列
- str – 指定的字符或者字符串
返回值
新字符串
常规举例
# 这是两段德文字符串组成的list
texts = ['David Gallo: Das ist Bill Lange.',
'Wir werden Ihnen einige Geschichten.',]
# 开始操作
print('one outputs --> ',' '.join(texts))
print('two outputs --> ')
'\n'.join(texts)
print('three outputs --> ','\n'.join(texts))
# outputs
one outputs --> David Gallo: Das ist Bill Lange. Wir werden Ihnen einige Geschichten.
two outputs --> David Gallo: Das ist Bill Lange. \nWir werden Ihnen einige Geschichten.
three outputs --> David Gallo: Das ist Bill Lange.
Wir werden Ihnen einige Geschichten.
很多人注意到这里就没了,其实用心点的朋友会发现一个问题:
two output和three output明明是一样的输出要求,为何结果不一样
一个是.....Lange.\nWir .......
一个是....Lange[回车]Wir...
有些人肯定说这是废话了,一个打印和一个不打印,巴拉巴拉说一堆。如果仅仅了解这样的,就莫过于肤浅了。我们可以用它做一些非常规操作。
这个细节还是很有意思的
细节
关键在于print()
这个函数,当我们用python
中的一些内置函数进行操作时候,需要格式显示,类似于转码操作,因此,print
和open
里面的一些操作都会有影响。
非常规操作
- 以前,把上述一个
list
保存经常是用for
循环
with open(fname,'w') as fout:
for sent in texts:
fout.write(sent+'\n')
得到保存文件
1.David Gallo: Das ist Bill Lange.
2.Wir werden Ihnen einige Geschichten.
3.
- 现在,当我们掌握了上面的格式显示的特性后,可以这样写
with open(fname,'w') as fout:
fout.write('\n'.join(texts))
得到保存的文件
1.David Gallo: Das ist Bill Lange.
2.Wir werden Ihnen einige Geschichten.
对比发现,没有多打印一行\n
,没有了第三行
好处
1.深入了解join()
函数
2.简洁了代码,工整,也不用去理解循环语句
3.输出完全按照自己理想输出