优化会员资格检查

时间:2017-11-16 15:14:06

标签: python python-3.x list

我在检查某些数据是否在两个大数据集中时遇到了一些问题。

假设我要以9位数字列表的形式检查其成员身份的数据:[0,1,2,3,4,5,6,7,8]

现在我有两个其他数据集,其中包含此数据的一些随机变体:[1,2,3,6,7,0,8,4,5][8,0,3,1,7,2,3,4,5]等... 这些数据集dataset1dataset2非常大,包含多达300,000种这类值。

现在我将数据存储为列表,数据集作为包含这些列表的列表存储。使用以下代码,成员资格操作需要太长时间。

# Solution 1, too slow
if data not in (dataset1 + dataset2):
    # do something

# Solution 2, also too slow
if data not in dataset1:
    if data not in dataset2:
        # do something

我可以通过哪种方式优化此测试?我只是选择将数据存储在列表中,但是另一个数据结构会更有效吗?我也可以比较字符串(比如'012345678')。

0 个答案:

没有答案