[python] 빈 세트 리터럴?

[] = 비어 있음 list

() = 비어 있음 tuple

{} = 비어 있음 dict

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



답변

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


답변

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

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

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

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


답변

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

버전 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


답변

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

기존 세트를 비우 .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입니다) 대신 사용할 수 있습니다.


답변

예. 비어 있지 않은 dict / set에 사용되는 것과 동일한 표기법이 비어있는 표기법에 적용됩니다.

비어 있지 않은 리터럴 dictset리터럴 의 차이점에 유의하십시오.

{1: 'a', 2: 'b', 3: 'c'}– 키 – 값 쌍의 수는 내부하게 dict
{'aaa', 'bbb', 'ccc'}튜플 값은 내부하게set

그래서:

{}== 0의 키-값 쌍 수 == 비어 있음 dict
{*()}== 비어있는 값의 튜플 == 비어 있음set

그러나 실제로 할 수 있다고해서 꼭해야하는 것은 아닙니다. 강력한 이유가없는 한 다음과 같이 빈 세트를 명시 적으로 구성하는 것이 좋습니다.

a = set()

주의 : ctrueden 은 주석에서 알 수 있듯이 빈 세트 {()}아닙니다 . 비어있는 튜플 : 하나의 요소가있는 세트입니다.


답변

파이썬에서 빈 세트를 만드는 방법은 거의 없습니다.

  1. set () 메소드 사용하기
    파이썬에서 내장 변수로 해당 변수에 빈 세트를 만듭니다.
  2. clear () 메소드 사용 (크리에이티브 엔지니어 기술 LOL)
    다음 예를 참조하십시오.

    sets = { “Hi”, “How”, “are”, “You”, “All”}
    type (sets) (This Line Output : set)
    sets .clear ()
    print (sets) (This Line Output : {})
    유형 (sets) (This Line Output : set)

따라서 이것은 빈 세트를 만드는 두 가지 방법입니다.