所以我最近尝试了解join()函数,但是我读过很多教程/文档,我似乎并不理解它。这里是否有人能够向我解释?
答案 0 :(得分:2)
join
多线程方法
关于线程和多线程的连接的使用,您将使用t.join()
。非常简单,所有这一切都是为了你请求加入一个线程,等待线程终止其运行。您的intepreter将一直运行,直到所有线程终止。对于运行很长时间的线程,请创建一个守护进程!也就是说,通过执行以下操作来创建线程守护程序:
t= Thread(target=entry, args=(5,), daemon=True)
t.start()
daemon=True
部分是该代码中唯一重要的部分,但我可以根据需要展开它。
这对于处理您运行的任何类型的后台任务非常有用。当主线程终止时,自动删除守护线程。
join
字符串方法
要理解join()
函数,请直观地思考Python的创建者通过命名它join()
来对此命令做什么...他们想要创建一个可以加入的命令&# 34;东西"并灵活地做到这一点。想象一下"东西"是一堆字符串。现在假设你想把它们放在一起,并且以一种计算速度快的方式(稍后会更多)假设你有很多这些字符串,你做了什么?您可以使用join()
以您希望的灵活方式组合字符串。通过灵活,您可以将字符串组合在一起,使它们用空格或逗号分隔,或者根本不用空格等。例如,考虑这个不同字符串的列表:
my_list = ['I', 'love', 'join', 'so', 'much']
现在让我们看一些使用join()
灵活加入列表的例子(我们非常喜欢):
','.join(my_list)
产生输出:
'I,love,join,so,much'
或者试试这个:
''.join(my_list)
产生输出:
'Ilovejoinsomuch'
或者试试这个例子:
' '.join(my_list)
产生输出:
'I love join so much'
请注意,在所有这些情况下,您的字符串列表会一起连接成一个字符串,并注意如何指定您希望如何进行连接。现在join()
背后的真正力量是你想要加入的对象可以是各种不同的类型:字典,列表,元组,生成器等。它不是非Pythonic;)实现所有这些不同的实体join()
一次一个?这就是Python在能够将所有这些不同类型的结构连接在一起时非常突出的地方,而您只需坐下来告诉它您希望如何将对象连接在一起。这就是您的灵活性所在。
现在我想向您展示一个非常酷的例子,即能够使用生成器表达式将一堆不同的对象类型组合在一起:
my_list = ['I', 20, 'same']
print ' '.join(str(x) for x in my_list)
这将打印以下输出:
'I 20 same'
当然,您可以自由地使用其他方法将字符串连接在一起。如果您只有几个字符串要加入,并且您不需要像join()
那样以计算速度快的方式执行此操作,则可以使用+号。例如:
string1 = 'my string'
string2 = 'your string'
print(string1 + ' ' + string2)
print('{} {}'.format(string1,string2))
产生输出:
'my string your string'
'my string your string'
但是如果你有很多这些字符串文字,你最好使用join()
来组合它们,这样你就不会遇到内存和垃圾收集等问题。
顺便说一下,如果你想知道你得到了什么样的输出(它是一个字符串,还是世界上的那个?),只需输入例如:
print type('{} {}'.format(string1,string2))
您的输出将是<type 'str'>
,您就会知道!
希望这有帮助!