Q1 - 다음은 generator expression
또는 set comprehension
의 set()
입니까? (아니면 그렇게하면, 동일하다 list
& dict
함축 또한 해당 유형 캐스트 발전기에?)python Set Comprehensions은 어떻게 작동합니까?
my_set = {x for x in range(10)}
Q2 - 평가는 중복 값이 & 다음 set()
을 적용하여 제거 고려합니까?
일반용 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)을 사용하거나 시간 모듈과 함께 코드 타이밍 기능을 빌드하여 시간/속도 차이점을 알아낼 수 있습니다. – Totem