Programing

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

crosscheck 2020. 11. 13. 07:51
반응형

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


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

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)

다음과 같은 경우를 처리하는 방법을 작성했습니다.

  • 크기 1을 설정하십시오. A ", ".join({'abc'})가 반환 "a, b, c"됩니다. 내가 원하는 출력은 "abc".
  • 정수를 포함하여 설정합니다.
  • 빈 세트가 반환되어야합니다. ""
def set_to_str(set_to_convert, separator=", "):
        set_size = len(set_to_convert)
        if not set_size:
            return ""
        elif set_size == 1:
            (element,) = set_to_convert
            return str(element)
        else:
            return separator.join(map(str, set_to_convert))

참고URL : https://stackoverflow.com/questions/7323782/python-how-to-join-entries-in-a-set-into-one-string

반응형