join多线程方法
关于线程和多线程连接的使用,您将使用t.join()。很简单,这一切为您做的就是您请求加入一个线程,该线程等待线程终止其运行。您的解释器将继续运行,直到所有线程终止。对于运行时间长的线程,做一个守护进程!也就是说,通过执行以下操作使线程成为守护进程:
t= Thread(target=entry, args=(5,), daemon=True)
t.start()
daemon=True 部分是该代码中唯一要显示给线程的重要部分,但如果需要,我可以扩展它。
这非常适合处理您正在运行的任何类型的后台任务。当主线程终止时,守护线程自动被淘汰。
join 字符串方法
要理解 join() 函数,直观地思考一下 Python 的创建者打算用这个命令做什么,将其命名为 join()... 他们想要创建一个可以加入“stuff”的命令并执行它灵活。想象一下“东西”是一堆字符串。现在想象一下,你想把它们放在一起,并以计算速度快的方式进行(稍后会详细介绍)假设你有很多这样的字符串,你会怎么做?您可以使用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() on所有这些不同的实体一次一个?这就是 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'>,您就会知道!
希望这会有所帮助!