[PYTHON] 파이썬에서 문자열을 분할하지 않고 튜플로 변환
PYTHON파이썬에서 문자열을 분할하지 않고 튜플로 변환
나는 문자열을 문자열로 변환하지 않고 튜플로 변환하려고 노력 중이다. 누군가 쉽게 이것을 할 수있는 방법을 제안 할 수 있습니까? 하나의 라이너가 필요합니다.
실패
a = 'Quattro TT'
print tuple(a)
공장
a = ['Quattro TT']
print tuple(a)
내 입력이 문자열이기 때문에 문자열을 목록으로 변환하여 아래 코드를 시도해 보았습니다. 다시 목록을 문자로 분할합니다.
실패
a = 'Quattro TT'
print tuple(list(a))
예상 출력 :
('Quattro TT')
생성 된 출력 :
('Q', 'u', 'a', 't', 't', 'r', 'o', ' ', 'T', 'T')
해결법
-
==============================
1.당신은 (a,) 할 수 있습니다. 기능을 사용할 필요가 없습니다. (쉼표가 필요합니다.)
당신은 (a,) 할 수 있습니다. 기능을 사용할 필요가 없습니다. (쉼표가 필요합니다.)
근본적으로, 튜플 (a)은 a 자체의 튜플이 아니라 튜플의 내용을 만드는 것을 의미합니다. 문자열의 "내용"(반복 할 때 얻을 수있는 내용)은 문자이므로 문자로 분할됩니다.
-
==============================
2.튜플에 관한 파이썬 튜토리얼을 살펴보십시오.
튜플에 관한 파이썬 튜토리얼을 살펴보십시오.
문자열 객체 주위에 한 쌍의 괄호 만 넣으면 해당 표현식을 괄호로 묶은 표현식으로 바꿉니다 (강조가 추가됨).
그건 (파이썬 2.7 가정),
a = 'Quattro TT' print tuple(a) # <-- you create a tuple from a sequence # (which is a string) print tuple([a]) # <-- you create a tuple from a sequence # (which is a list containing a string) print tuple(list(a)) # <-- you create a tuple from a sequence # (which you create from a string) print (a,) # <-- you create a tuple containing the string print (a) # <-- it's just the string wrapped in parentheses
예상대로 출력됩니다.
('Q', 'u', 'a', 't', 't', 'r', 'o', ' ', 'T', 'T') ('Quattro TT',) ('Q', 'u', 'a', 't', 't', 'r', 'o', ' ', 'T', 'T') ('Quattro TT',) Quattro TT
print 문에 몇 가지 메모를 추가합니다. Python 2.7에서 print 구문의 일부로 단일 요소 튜플을 만들려고하면 (print (a,)와 같이) 괄호로 묶은 양식을 사용해야합니다. 그 이유는 인쇄 a의 후행 쉼표가 그 중 일부로 간주되기 때문입니다. print 문은 결과적으로 생성되는 튜플이 아닌 출력에서 개행을 억제합니다.
Python 3.x에서 위 예제의 대부분은 실제로 Python 3에서 인쇄가 함수로 바뀌기 때문에 SyntaxError를 발생시킵니다 (여분의 괄호 쌍을 추가해야 함). 그러나 특히 이것은 혼란을 야기 할 수 있습니다 :
print (a,) # <-- this prints a tuple containing `a` in Python 2.x # but only `a` in Python 3.x
-
==============================
3.누군가 "Quattro"와 "TT"라는 문자열의 각 부분을리스트의 요소에 할당하는 튜플을 만드는 방법을 알고 자한다면 여기에 프린트 튜플 (a.split ())
누군가 "Quattro"와 "TT"라는 문자열의 각 부분을리스트의 요소에 할당하는 튜플을 만드는 방법을 알고 자한다면 여기에 프린트 튜플 (a.split ())
-
==============================
4.이 함수를 사용하여 문자열을 튜플로 변환합니다.
이 함수를 사용하여 문자열을 튜플로 변환합니다.
import ast def parse_tuple(string): try: s = ast.literal_eval(str(string)) if type(s) == tuple: return s return except: return
용법
parse_tuple('("A","B","C",)') # Result: ('A', 'B', 'C')
당신의 경우에는
value = parse_tuple("('%s',)" % a)
-
==============================
5.다음 솔루션을 사용할 수 있습니다.
다음 솔루션을 사용할 수 있습니다.
s="jack" tup=tuple(s.split(" ")) output=('jack')
-
==============================
6.이 하위 클래스 인스턴스 중 일부가 1 문자열 인스턴스 일 필요가있는 튜플을 서브 클래 싱하는 것은 흥미로운 것을 던집니다.
이 하위 클래스 인스턴스 중 일부가 1 문자열 인스턴스 일 필요가있는 튜플을 서브 클래 싱하는 것은 흥미로운 것을 던집니다.
class Sequence( tuple ): def __init__( self, *args ): # initialisation... self.instances = [] def __new__( cls, *args ): for arg in args: assert isinstance( arg, unicode ), '# arg %s not unicode' % ( arg, ) if len( args ) == 1: seq = super( Sequence, cls ).__new__( cls, ( args[ 0 ], ) ) else: seq = super( Sequence, cls ).__new__( cls, args ) print( '# END new Sequence len %d' % ( len( seq ), )) return seq
NB는이 스레드에서 배웠으므로 args [0] 뒤에 쉼표를 써야합니다.
인쇄 줄은 하나의 문자열이 나뉘어지지 않는다는 것을 보여줍니다.
주의 이제 하위 클래스의 생성자에있는 쉼표가 선택 사항이됩니다.
Sequence( u'silly' )
또는
Sequence( u'silly', )
-
==============================
7.이것은 단순한 경우에만 적용됩니다.
이것은 단순한 경우에만 적용됩니다.
a = ‘Quattro TT’ print tuple(a)
','와 같은 구분 기호 만 사용하면 작동 할 수 있습니다.
configparser에서 문자열을 다음과 같이 사용했습니다.
list_users = (‘test1’, ‘test2’, ‘test3’) and the i get from file tmp = config_ob.get(section_name, option_name) >>>”(‘test1’, ‘test2’, ‘test3’)”
이 경우 위의 해결책은 작동하지 않습니다. 그러나 이것은 작동하지 않습니다.
def fot_tuple(self, some_str): # (‘test1’, ‘test2’, ‘test3’) some_str = some_str.replace(‘(‘, ”) # ‘test1’, ‘test2’, ‘test3’) some_str = some_str.replace(‘)’, ”) # ‘test1’, ‘test2’, ‘test3’ some_str = some_str.replace(“‘, ‘”, ‘,’) # ‘test1,test2,test3’ some_str = some_str.replace(“‘”, ‘,’) # test1,test2,test3 # and now i could convert to tuple return tuple(item for item in some_str.split(‘,’) if item.strip())
from https://stackoverflow.com/questions/16449184/python-converting-string-to-tuple-without-splitting-characters by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 사전 키가 존재하는지 확인하고 그것이 존재한다면 값을 처리하는 가장 효율적인 방법 (0) | 2018.11.23 |
---|---|
[PYTHON] 파이썬 사전을 키로 사용 (중첩되지 않음) (0) | 2018.11.23 |
[PYTHON] 최신 종속성에도 불구하고 파이썬 요청에 SSL 오류가 발생했습니다. (0) | 2018.11.23 |
[PYTHON] Python에서 순차적으로 명령 실행 (0) | 2018.11.23 |
[PYTHON] 입력을 숫자로 읽으려면 어떻게해야합니까? (0) | 2018.11.23 |