문자열 사전을 사전 Python으로 변환
데이터 유형의 상호 변환은 여러 번 논의되었으며 해결해야 할 인기 있는 문제였습니다. 이 기사에서는 문자열 형식의 사전을 사전으로 상호 변환하는 또 다른 문제에 대해 설명합니다. 이를 수행할 수 있는 특정 방법에 대해 논의해 보겠습니다.
json.loads()를 사용하여 문자열 사전을 사전으로 변환
이 작업은 유효한 사전의 문자열을 Python의 사전인 json 형식으로 변환하는 내장된 Python json 라이브러리 함수를 사용하여 쉽게 수행할 수 있습니다.
단계별 접근 방식:
- '를 가져오세요. JSON ' 모듈.
- 문자열 형식의 사전을 사용하여 문자열 변수 'test_string'을 초기화합니다.
- 'print()' 함수를 사용하여 원본 문자열을 인쇄하고 'str()' 함수를 사용하여 문자열로 변환된 'test_string' 변수와 연결합니다.
- 'json.loads()' 함수를 사용하여 사전 문자열을 사전 객체로 변환하고 이를 변수 'res'에 할당합니다.
- print() 함수를 사용하여 변환된 사전을 인쇄하고 str() 함수를 사용하여 문자열로 변환된 res 변수와 연결합니다.
파이썬3
# Python3 code to demonstrate> # convert dictionary string to dictionary> # using json.loads()> import> json> # initializing string> test_string> => '{'Nikhil' : 1, 'Akshat' : 2, 'Akash' : 3}'> # printing original string> print> (> 'The original string : '> +> str> (test_string))> # using json.loads()> # convert dictionary string to dictionary> res> => json.loads(test_string)> # print result> print> (> 'The converted dictionary : '> +> str> (res))> |
출력 :
The original string : {'Nikhil' : 1, 'Akshat' : 2, 'Akash' : 3} The converted dictionary : {'Nikhil': 1, 'Akshat': 2, 'Akash': 3} 시간 복잡도: O(1) 문자열을 입력으로 사용하고 사전을 반환하는 json.loads에 대한 단일 함수 호출이기 때문입니다.
보조 공간: O(n), 여기서 n은 입력 문자열의 길이입니다. 이는 반환된 사전이 입력 문자열의 길이에 비례하여 공간을 차지하기 때문입니다.
ast.literal_eval() 사용 문자열 사전을 사전으로 변환하려면
위의 방법을 사용하여 유사한 변환을 수행할 수도 있습니다. eval 함수보다 안전한 함수이며 사전 이외의 모든 데이터 유형의 상호 변환에도 사용할 수 있습니다.
단계:
- 프로그램은 ast 모듈을 가져옵니다.
- 프로그램은 사전의 문자열 표현인 {Nikhil : 1, Akshat : 2, Akash : 3}을 사용하여 문자열 변수 test_string을 초기화합니다.
- 프로그램은 print() 함수와 str() 함수를 사용하여 test_string 변수를 문자열로 변환하여 원래 문자열을 인쇄합니다. print(원래 문자열 : + str(test_string)).
- 프로그램은 ast.literal_eval() 함수를 사용하여 사전의 문자열 표현을 Python 사전으로 변환합니다: res = ast.literal_eval(test_string).
- 프로그램은 res 변수를 문자열로 변환하는 print() 함수와 str() 함수를 사용하여 결과 사전을 인쇄합니다. print(변환된 사전 : + str(res)).
파이썬3
# Python3 code to demonstrate> # convert dictionary string to dictionary> # using ast.literal_eval()> import> ast> # initializing string> test_string> => '{'Nikhil' : 1, 'Akshat' : 2, 'Akash' : 3}'> # printing original string> print> (> 'The original string : '> +> str> (test_string))> # using ast.literal_eval()> # convert dictionary string to dictionary> res> => ast.literal_eval(test_string)> # print result> print> (> 'The converted dictionary : '> +> str> (res))> |
출력 :
The original string : {'Nikhil' : 1, 'Akshat' : 2, 'Akash' : 3} The converted dictionary : {'Nikhil': 1, 'Akshat': 2, 'Akash': 3} 시간 복잡도: O(n) 여기서 n은 사전 문자열의 문자 수입니다.
보조 공간: O(n) 여기서 n은 사전 문자열의 요소 수입니다.
eval()을 사용하여 문자열 사전을 사전으로 변환
위의 방법을 사용하여 유사한 변환을 수행할 수도 있습니다. eval() 함수는 전달된 인수를 구문 분석하고 이를 Python 표현식으로 변환하고 Python 표현식을 실행합니다.
파이썬
# Python3 code to demonstrate> # convert dictionary string to dictionary> # using eval()> # initializing string> test_string> => '{'Nikhil' : 1, 'Akshat' : 2, 'Akash' : 3}'> # printing original string> print> (> 'The original string : '> +> str> (test_string))> # using eval()> # convert dictionary string to dictionary> res> => eval> (test_string)> # print result> print> (> 'The converted dictionary : '> +> str> (res))> |
산출:
The original string : {'Nikhil' : 1, 'Akshat' : 2, 'Akash' : 3} The converted dictionary : {'Nikhil': 1, 'Akshat': 2, 'Akash': 3} 시간 복잡도: 오(1)
보조 공간: 오(1)
Split() 메서드와 사전 이해를 사용하여 문자열 사전을 사전으로 변환
먼저, Strip() 메소드를 사용하여 문자열에서 중괄호를 제거합니다. 그런 다음, Split() 메소드를 사용하여 문자열을 키-값 쌍 목록으로 분할합니다. 마지막으로 사전 이해를 사용하여 쌍을 반복하고 이를 별도의 키 및 값 문자열로 분할하고 값을 사전에 추가하기 전에 정수로 변환합니다. 결과 사전이 반환됩니다.
파이썬3
def> str_to_dict(string):> > # remove the curly braces from the string> > string> => string.strip(> '{}'> )> > # split the string into key-value pairs> > pairs> => string.split(> ', '> )> > # use a dictionary comprehension to create> > # the dictionary, converting the values to> > # integers and removing the quotes from the keys> > return> {key[> 1> :> -> 2> ]:> int> (value)> for> key, value> in> (pair.split(> ': '> )> for> pair> in> pairs)}> # test the function> test_string> => '{'Nikhil' : 1, 'Akshat' : 2, 'Akash' : 3}'> print> (> 'The original string : '> +> str> (test_string))> print> (> 'The converted dictionary : '> +> str> (> > str_to_dict(test_string)))> # The original string : {'Nikhil' : 1, 'Akshat' : 2, 'Akash' : 3}> # The converted dictionary : {'Nikhil': 1, 'Akshat': 2, 'Akash': 3}> |
산출
The original string : {'Nikhil' : 1, 'Akshat' : 2, 'Akash' : 3} The converted dictionary : {'Nikhil': 1, 'Akshat': 2, 'Akash': 3} 시간 복잡도: O(n), 여기서 n은 사전에 있는 키-값 쌍의 수입니다.
보조 공간: 에)
eval() 함수와 replacement() 함수를 사용하여 문자열 사전을 사전으로 변환
- 문자열 형식으로 사전을 포함하는 문자열을 초기화합니다.
- 사용 바꾸다() 문자열의 모든 작은따옴표(')를 큰따옴표()로 바꾸는 함수입니다.
- 사용 평가() 결과 문자열을 사전 객체가 될 Python 표현식으로 평가하는 함수입니다.
- 결과 사전을 변수에 할당합니다.
파이썬3
# Python3 code to demonstrate> # convert dictionary string to dictionary> # using eval() and replace()> # initializing string> test_string> => '{'Nikhil' : 1, 'Akshat' : 2, 'Akash' : 3}'> # printing original string> print> (> 'The original string : '> +> str> (test_string))> # using eval() and replace()> # convert dictionary string to dictionary> res> => eval> (test_string.replace(> '''> ,> '''> ))> # print result> print> (> 'The converted dictionary : '> +> str> (res))> |
산출
The original string : {'Nikhil' : 1, 'Akshat' : 2, 'Akash' : 3} The converted dictionary : {'Nikhil': 1, 'Akshat': 2, 'Akash': 3} 시간 복잡도: O(n), 여기서 n은 입력 문자열의 길이입니다. 이는 replacement() 함수의 시간 복잡도가 O(n)이기 때문입니다.
보조 공간: O(n), 여기서 n은 입력 문자열의 길이입니다.