[python] 파이썬 : 집합의 항목을 하나의 문자열로 결합하는 방법은 무엇입니까?

기본적으로 하나의 문자열을 출력하기 위해 항목을 집합으로 결합하려고합니다. 목록에 대한 조인 함수와 유사한 구문을 사용하려고합니다. 내 시도는 다음과 같습니다.

list = ["gathi-109","itcg-0932","mx1-35316"]
set_1 = set(list)
set_2 = set(["mx1-35316"])
set_3 = set_1 - set_2
print set_3.join(", ")

그러나이 오류가 발생합니다. AttributeError: 'set' object has no attribute 'join'

세트에 대한 동등한 호출은 무엇입니까?



답변

', '.join(set_3)

join문자열 방식이 아닌 설정 방법입니다.


답변

집합에는 join메서드가 없지만 str.join대신 사용할 수 있습니다 .

', '.join(set_3)

str.join메서드는 목록과 집합을 포함한 모든 반복 가능한 개체에서 작동합니다.

참고 : 정수를 포함하는 세트에서 사용하는 데주의하십시오. 조인을 호출하기 전에 정수를 문자열로 변환해야합니다. 예를 들면

set_4 = {1, 2}
', '.join(str(s) for s in set_4)


답변

join문자열에 호출됩니다

print ", ".join(set_3)


답변

또한 그러한 방법 set도 없으며 string에는 다음이 있습니다.listjoin

','.join(set(['a','b','c']))

그런데 list변수에 이름 을 사용해서는 안됩니다 . 그것을주고 list_, my_list때문에 또는 다른 이름을 list자주 파이썬 함수를 사용한다.


답변

세트의 주문을하지 않는다 – 당신이 그렇게 할 수 는 집합, 즉으로 목록을 변환 할 때 주문을 잃게 :

>>> orderedVars = ['0', '1', '2', '3']
>>> setVars = set(orderedVars)
>>> print setVars
('4', '2', '3', '1')

일반적으로 순서는 유지되지만 큰 세트의 경우 거의 확실하지 않습니다.

마지막으로 사람들이 궁금해하는 경우 조인에 ‘,’가 필요하지 않습니다.

그냥 : ”.join (set)

🙂


답변

나는 당신이 그것을 거꾸로 가지고 있다고 생각합니다.

print ", ".join(set_3)


답변

조인 문이 거꾸로 시도됩니다.

print ', '.join(set_3)