나는 이와 같은 세트를 가지고있다 :
keep = set(generic_drugs_mapping[drug] for drug in drug_input)
[0,1,2,3,4,5,6,7,8,9,10]
이 세트 에 값 을 어떻게 추가 합니까?
나는 이와 같은 세트를 가지고있다 :
keep = set(generic_drugs_mapping[drug] for drug in drug_input)
[0,1,2,3,4,5,6,7,8,9,10]
이 세트 에 값 을 어떻게 추가 합니까?
답변:
keep.update(yoursequenceofvalues)
예를 들어, keep.update(xrange(11))
특정 예를 들어. 또는 다른 이유로 루프에서 값을 생성 해야하는 경우
for ...whatever...:
onemorevalue = ...whatever...
keep.add(onemorevalue)
그러나 물론, 가능하면 한 번의 .update
호출 로 대량으로 처리하는 것이 더 빠르고 간편합니다.
.add
단일 해시 가능 유형을 .update
기대하고 반복 가능한 객체 를 기대합니다
.add
하지 말아야한다는 사실을 알아 두는 것이 중요합니다 .update
.
세트 정의
a = set()
add를 사용하여 단일 값을 추가하십시오.
a.add(1)
a.add(2)
업데이트를 사용하여 튜플, 세트, 목록 또는 고정 세트의 요소를 추가하십시오.
a.update([3,4])
>> print(a)
{1, 2, 3, 4}
튜플 또는 고정 세트 자체를 추가하려면 add를 사용하십시오.
a.add((5, 6))
>> print(a)
{1, 2, 3, 4, (5, 6)}
참고 : 집합 요소는 해시 가능해야하며 목록은 변경 가능한 것으로 간주되므로 집합에 목록을 추가 할 수 없습니다. 다른 세트를 세트에 추가 할 수도 없습니다. 그러나 ".update"메소드로 설명 된대로 목록 및 세트에서 요소를 추가 할 수 있습니다.
|
연산자를 사용하여 두 세트를 연결할 수도 있습니다 ( 세트 이론의 결합 ).
>>> my_set = {1}
>>> my_set = my_set | {2}
>>> my_set
{1, 2}
또는 다음을 사용하여 더 짧은 양식 |=
:
>>> my_set = {1}
>>> my_set |= {2}
>>> my_set
{1, 2}
참고 : Python 2.7 이전 버전에서는 set([...])
대신을 사용하십시오 {...}
.
my_sets
할 수 있습니다big_set = my_sets[0].union(*my_sets[1:])
이 질문은 "Python에서 설정할 요소를 추가하는 방법"을 찾을 때 Google에 표시되는 첫 번째 질문이므로 전체 문자열을 세트에 추가하려면 다음과 같이 추가해야합니다 .add()
. 아닙니다 .update()
.
foo_str
내용이 'this is a sentence'
인 문자열 이 있고 일부가 bar_set
같다고 가정 해보십시오 set()
.
그렇게하면
bar_set.update(foo_str)
세트의 내용이됩니다 {'t', 'a', ' ', 'e', 's', 'n', 'h', 'c', 'i'}
.
그렇게하면 bar_set.add(foo_str)
세트의 내용이됩니다 {'this is a sentence'}
.
이 작업을 수행하는 방법은 원래 세트와 목록에 추가하고 싶은 값을 모두 추가 한 다음 다시 세트로 변환하는 것입니다.
setMenu = {"Eggs", "Bacon"}
print(setMenu)
> {'Bacon', 'Eggs'}
setMenu = set(list(setMenu) + list({"Spam"}))
print(setMenu)
> {'Bacon', 'Spam', 'Eggs'}
setAdditions = {"Lobster", "Sausage"}
setMenu = set(list(setMenu) + list(setAdditions))
print(setMenu)
> {'Lobster', 'Spam', 'Eggs', 'Sausage', 'Bacon'}
이 방법으로 동일한 논리를 사용하여 여러 세트를 쉽게 추가 할 수 TypeError: unhashable type: 'set'
있으므로 .update()
메소드로 시도하면 도움이 됩니다 .
.add
단일 항목을.update
추가하고 여러 항목을 추가합니다. 그 맞습니까?