14

Q1 - 次は aset()の a ですか、generator expressionそれとも aset comprehensionですか? (またはそれらは同じですか?もしそうなら、list&dict内包表記もジェネレーターの型キャストに対応していますか?)

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ですか?

4

1 に答える 1