Programming

빈 세트 리터럴?

procodes 2020. 2. 20. 23:39
반응형

빈 세트 리터럴?


[] = 비어 있음 list

() = 비어 있음 tuple

{} = 비어 있음 dict

공란과 비슷한 표기법이 set있습니까? 아니면 써야 set()합니까?


아니요, 빈 세트에 대한 리터럴 구문은 없습니다. 당신은 작성해야합니다 set().


허용되는 답변을 확장하려면 다음을 수행하십시오.

버전 2.73.1파이썬 에서 사용 형태로 set리터럴 {}얻었 {1,2,3}지만 {}여전히 빈 dict에 사용되었습니다.

Python 2.7 (파이썬 <2.7에서는 첫 번째 줄이 유효하지 않음)

>>> {1,2,3}.__class__
<type 'set'>
>>> {}.__class__
<type 'dict'>

파이썬 3.x

>>> {1,4,5}.__class__
<class 'set'>
>>> {}.__class__
<type 'dict'>

자세한 내용은 https://docs.python.org/3/whatsnew/2.7.html#other-language-changes


이용하시기 바랍니다 set() 빈 세트를 만들 수 있습니다.

그러나 사람들에게 감동을주고 싶다면 리터럴을 사용하고 *Python> = 3.5 ( PEP 448 참조 )를 사용하여 빈 세트를 만들 수 있다고 알려줍니다 .

>>> s = {*()}  # or {*{}} or {*[]}
>>> print(s)
set()

이것은 기본적으로 더 압축 된 방법 {_ for _ in ()}이지만, 그렇게하지 마십시오.


비교 또는 할당을 위해 리터럴을 원하는지 여부에 따라 다릅니다.

기존 세트를 비우 .clear()려면, 특히 새 객체를 작성하지 않으려는 경우, 방법을 사용할 수 있습니다 . 비교를하려면 set()길이가 0인지 확인하거나 사용 하십시오.

예:

#create a new set    
a=set([1,2,3,'foo','bar'])
#or, using a literal:
a={1,2,3,'foo','bar'}

#create an empty set
a=set()
#or, use the clear method
a.clear()

#comparison to a new blank set
if a==set():
    #do something

#length-checking comparison
if len(a)==0:
    #do something

미친 아이디어에 추가 : 파이썬 3에서 유니 코드 식별자를 허용하면 변수를 선언하고 ϕ = frozenset()(ϕ는 U + 03D5입니다) 대신 사용할 수 있습니다.

참고 URL : https://stackoverflow.com/questions/6130374/empty-set-literal



반응형