Snippets

Masato Kaneko Python3 でのリスト、タプル、ディクショナリ、セットに対する in 演算子の処理時間比較

Created by Masato Kaneko
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import timeit

num = 1000
sample_list = [n+1 for n in range(num)]

sample_tuple = tuple(sample_list)
sample_dict = {elem:True for elem in sample_list}
sample_set  = set(sample_list)
sample_number = 555


def speedtest_int_in_list():
	sample_number in sample_list

def speedtest_int_in_tuple():
	sample_number in sample_tuple

def speedtest_int_in_dict():
	sample_number in sample_dict

def speedtest_int_in_set():
	sample_number in sample_set


test_functions = (
	"speedtest_int_in_list",
	"speedtest_int_in_tuple",
	"speedtest_int_in_dict",
	"speedtest_int_in_set"
)

results = []

for func in test_functions:
	results.append( (timeit.timeit(eval(func), number = 1), func) )

results = sorted(results)
fastest = results[0][0]

for rank, result in enumerate(results):
	print("#{rank} => {typename}: {time:.10f} seconds (#1 x {diff} times)".format(
		rank = rank + 1,
		typename = result[1].split("_")[-1],
		time = result[0],
		diff = round(result[0] / fastest))
	)


# [EOF]

Comments (0)

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.