我有一些代码,做了以下操作:
if string in comma_delimited_string.split(','):
return True
这个网站说使用集合和字典进行成员测试比使用列表或元组要快得多。我知道使用set(comma_delimited_string.split(','))
并不能提高速度,因为在转换成集合之前仍然会创建一个列表(或者至少,在我计时时似乎会减慢速度)。
那么,我想知道(主要是出于好奇而不是真正有益于我的代码),是否有一种方法可以直接创建一个集合来实现与comma_delimited_string.split(',')
相同的效果,而不是创建一个列表,以加快上述操作的速度?
'1000000' in my_set
要比'1000000' in my_list
快得多,至少我计时的时候是这样。鉴于此,如果有一种方法可以将逗号分隔的字符串直接转换为集合,并且需要与.split
方法花费相同的时间,那么实际成员测试的速度可能会加快。 - dieggsy.split
一样快的唯一方法可能是以某种方式在C中编写自定义实现,正如你所说,这会带来额外开销。 - dieggsy