저는 파이썬을 배우고 있으며 세트 초기화에 대한 초보자 질문이 있습니다. 테스트를 통해 세트가 다음과 같이 초기화 될 수 있음을 발견했습니다.
my_set = {'foo', 'bar', 'baz'}
다음과 같은 표준 방식과 달리 이런 방식으로 수행하는 데 단점이 있습니까?
my_set = set(['foo', 'bar', 'baz'])
아니면 스타일 문제일까요?
답변
집합 리터럴 구문에는 두 가지 명백한 문제가 있습니다.
my_set = {'foo', 'bar', 'baz'}
-
Python 2.7 이전에는 사용할 수 없습니다.
-
해당 구문을 사용하여 빈 집합을 표현할 수있는 방법이 없습니다 (사용
{}
하면 빈 사전이 생성됨).
그것들은 당신에게 중요하거나 중요하지 않을 수 있습니다.
이 구문을 설명하는 문서 섹션은 여기에 있습니다 .
답변
한 단어 인수를 사용하여 {}
및 의 차이점도 비교하십시오 set()
.
>>> a = set('aardvark')
>>> a
{'d', 'v', 'a', 'r', 'k'}
>>> b = {'aardvark'}
>>> b
{'aardvark'}
하지만 모두 a
와 b
과정의 집합입니다.
답변
에서 파이썬 3 문서 ( 같은 파이썬 2.7에 대한 보유 ) :
중괄호 또는 set () 함수를 사용하여 집합을 만들 수 있습니다. 참고 : 빈 집합을 만들려면 {}가 아닌 set ()을 사용해야합니다. 후자는 다음 섹션에서 논의 할 데이터 구조 인 빈 사전을 만듭니다.
파이썬 2.7에서 :
>>> my_set = {'foo', 'bar', 'baz', 'baz', 'foo'}
>>> my_set
set(['bar', 'foo', 'baz'])
그주의 {}
도 사용됩니다 map
/ dict
:
>>> m = {'a':2,3:'d'}
>>> m[3]
'd'
>>> m={}
>>> type(m)
<type 'dict'>
포괄적 인 구문을 사용하여 집합을 초기화 할 수도 있습니다.
>>> a = {x for x in """didn't know about {} and sets """ if x not in 'set' }
>>> a
set(['a', ' ', 'b', 'd', "'", 'i', 'k', 'o', 'n', 'u', 'w', '{', '}'])
답변
empty_set = set()
빈 집합을 초기화 해야합니다 . {}
빈 사전입니다.