Q1 - 次は、generator expression
またはset comprehension
のset()
ですか? (それとも、そうであれば、同じですlist
& dict
内包表記も対応型キャスト発電機に?)python Set Comprehensionsはどのように機能しますか?
my_set = {x for x in range(10)}
Q2 - 評価が重複した値が&、その後set()
を適用することによって、それらを削除を検討していますか?
dup_set = {x for x in [0, 1, 2, 0, 1, 2]}
理解度は、通常のfor
ループよりも(スピードワイズ)優れていますか?
更新 - 速度比較のためにtimeit
を試してみました。私がいるかどうかわからないちょうどそれについて(公平)。
C:\>python -m timeit "s = set()" "for x in range(10):" "
s.add(x)"
100000 loops, best of 3: 2.3 usec per loop
C:\>python -m timeit "s = {x for x in range(10)}"
1000000 loops, best of 3: 1.68 usec per loop
さて、そこで、いくつかの条件文
C:\>python -m timeit "s = set()" "for x in range(10):" "
if x%2: s.add(x)"
100000 loops, best of 3: 2.27 usec per loop
C:\>python -m timeit "s = {x for x in range(10) if x%2}"
1000000 loops, best of 3: 1.83 usec per loop
を使用して、かなりの差がある、それが原因c
にハードコードされている機能にありますか?
timeit(http://docs.python.org/2/library/timeit.html)を使用するか、timeモジュールでコードのタイミング機能を構築して、時間/速度の相違点を確認することができます – Totem