Bajo el diccionario de conversión python3, y una lista de cadenas

Hoy aprendemos conversión del pitón de varias estructuras de datos comunes: 字符串(str), 字典(dict), 列表(list).

String - lista

Lista de transferencia de cadena

  • 1. Utilice el built-in funciones list()
>>> str1 = "abcdefg"
>>> list1 = list(str1)
>>> print(list1)
['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>>
  • 2. Utilice el built-in funciones eval()
>>> str2 = "['aaa', 'bbb', 'ccc', 'ddd']"
>>> list2 = eval(str2)
>>> print(type(list2))
<class 'list'>
>>> print(list2)
['aaa', 'bbb', 'ccc', 'ddd']
>>>
  • 3. Utilice el módulo incorporado json.loads()método
# str3 = "['aaa', 'bbb', 'ccc', 'ddd']" 
# 因为 json.loads() 是将json格式字符串转换为python对象,而按 json 的标准规范应该使用双引号,如果使用单引号会导致报错
>>> str3 = '["aaa", "bbb", "ccc", "ddd"]'
>>> import json
>>> list3 = json.loads(str3)
>>> print(type(list3))
<class 'list'>
>>> print(list3)
['aaa', 'bbb', 'ccc', 'ddd']
>>>
  • 4. El uso split()dividido
>>> str4 = "username=admin&passsword=123456"
>>> list4 = str4.split("&")
>>> print(type(list4))
<class 'list'>
>>> print(list4)
['username=admin', 'passsword=123456']
>>>

Si queremos dividir múltiples caracteres, se puede utilizar el módulo incorporado re.split()método.

>>> str5 = "username=admin&passsword=123456"
>>> import re
>>> list5 = re.split("&|=", str5)
>>> print(type(list5))
<class 'list'>
>>> print(list5)
['username', 'admin', 'passsword', '123456']
>>>

Lista de cuerdas

  • 1. Utilice el built-in funciones str()
# 注意,转换之后,双引号会变为单引号
>>> list1 = ["aaa", 123, 'ccc', True]
>>> str1 = str(list1)
>>> print(type(str1))
<class 'str'>
>>> print(str1)
['aaa', 123, 'ccc', True]
>>>

Directamente por encima str(), es convertir toda la lista en una cadena, si no queremos cambiar el tipo de lista, pero desea una lista de todos los elementos en una cadena, que puede ser implementado por listas por comprensión.

# 注意,转换之后,双引号会变为单引号
>>> list1 = ["aaa", 123, 'ccc', True]
>>> str2 = [str(i) for i in list2]
>>> print(type(str2))
<class 'list'>
>>> print(str2)
['aaa', '123', 'ccc', 'True']
>>>
  • 2. Uso join()de empalme
>>> list3 = ['username=admin', 'passsword=123456']
>>> str3 = "&".join(list3)
>>> print(type(str3))
<class 'str'>
>>> print(str3)
username=admin&passsword=123456
>>>
  • 3. Utilice el módulo incorporado json.dumps()método
# 这里列表中使用了单引号
>>> list4 = ['username=admin', 'passsword=123456']
>>> import json
>>> str4 = json.dumps(list4)
>>> print(type(str4))
<class 'str'>
>>> print(str4)
["username=admin", "passsword=123456"]
>>>

Se hace notar que, de acuerdo con jsonlas especificaciones estándar es el uso de comillas dobles "", por lo cadena JSON después de la conversión obtenida es comillas dobles.

String - diccionario

Diccionario de cuerda a su vez

  • 1. Utilice el built-in funciones eval()
>>> str1 = "{'username':'admin', 'password':123456}"
>>> dict1 = eval(str1)
>>> print(type(dict1))
<class 'dict'>
>>> print(dict1)
{'username': 'admin', 'password': 123456}
>>>
  • 2. Utilice el módulo incorporado json.loads()método
# str1 = "{'username':'admin', 'password':123456}"
# 因为 json.loads() 是将json格式字符串转换为python对象,而按 json 的标准规范应该使用双引号,如果使用单引号会导致报错
>>> str2 = '{"username":"admin", "password":123456}'
>>> import json
>>> dict2 = json.loads(str2)
>>> print(type(dict2))
<class 'dict'>
>>> print(dict2)
{'username': 'admin', 'password': 123456}
>>>
  • 3. Utilice el módulo incorporado ast.literal_eval()método
>>> str3 = "{'username':'admin', 'password':123456}"
>>> import ast
>>> dict3 = ast.literal_eval(str3)
>>> print(type(dict3))
<class 'dict'>
>>> print(dict3)
{'username': 'admin', 'password': 123456}
>>>

Hemos encontrado, Python ya se ha incorporado en funciones eval(), pero ahora una apariencia similar, pero ast.literal_eval()el método, ¿cuál es la diferencia entre los dos es?

Esto se debe principalmente por razones de seguridad, ya que el ast.literal_eval()resultado del cálculo determinará el tipo de pitón no es legítimo, si se vuelve a efectuar operaciones, o no llevar a cabo las operaciones, pero eval()no los controla, incluso si la cadena es un comando, el mismo será resuelto.

Por lo tanto, en comparación con eval()la función, ast.literal_eval()más seguro, más se recomienda .

Diccionario de cuerdas

  • 1. Utilice el built-in funciones str()
>>> dict1 = {'username': 'admin', 'password': 123456}
>>> str1 = str(dict1)
>>> print(type(str1))
<class 'str'>
>>> print(str1)
{'username': 'admin', 'password': 123456}
>>>
  • 2. Utilice el módulo incorporado json.dumps()método
>>> dict2 = {'username': 'admin', 'password': 123456}
>>> import json
>>> str2 = json.dumps(dict2)
>>> print(type(str2))
<class 'str'>
>>> print(str2)
{"username": "admin", "password": 123456}
>>>

Se hace notar que, de acuerdo con jsonlas especificaciones estándar es el uso de comillas dobles "", por lo cadena JSON después de la conversión obtenida es comillas dobles.

Si queremos obtener los restos de cadena entre comillas simples, puede ser replace()maneras de lidiar con las cosas simples.

>>> dict3 = {'username': 'admin', 'password': 123456}
>>> import json
>>> str3 = json.dumps(dict3).replace("\"", "'")
>>> print(type(str3))
<class 'str'>
>>> print(str3)
{'username': 'admin', 'password': 123456}
>>>

Diccionario - lista

Lista de transferencia de diccionario

  • 1. Utilice el built-in funciones list()
>>> dict1 = {"a": 1, "b": "2", "c": True}
>>> list1 = list(dict1.keys())
>>> print(list1)
['a', 'b', 'c']
>>> list2 = list(dict1.values())
>>> print(list2)
[1, '2', True]
>>>

Lista de los diccionarios a su vez

  • 1. El uso de la incorporada en la función dict(), una lista anidada en los diccionarios
>>> list3 = [['a', 1], ['b', '2'], ['c', True]]
>>> dict2 = dict(list3)
>>> print(type(dict2))
<class 'dict'>
>>> print(dict2)
{'a': 1, 'b': '2', 'c': True}
>>>
  • 2. Utilice el built-in funciones zip(), las dos listas en el diccionario
>>> list1 = ["a", 'b', "c", 'd', "f"]
>>> list2 = ["1", '2', "3", '4', "5"]
>>> dict1 = dict(zip(list1,list2))
>>> print(type(dict1))
<class 'dict'>
>>> print(dict1)
{'a': '1', 'b': '2', 'c': '3', 'd': '4', 'f': '5'}
>>>

Si la longitud de las dos listas no son los mismos, entonces ellos no muestran los elementos adicionales.

>>> list1 = ["a", 'b', "c"]
>>> list2 = ["1", '2', "3", '4', "5"]
>>> dict1 = dict(zip(list1,list2))
>>> print(type(dict1))
<class 'dict'>
>>> print(dict1)
{'a': '1', 'b': '2', 'c': '3'}
>>>

Supongo que te gusta

Origin www.cnblogs.com/wintest/p/12543770.html
Recomendado
Clasificación