Operación y conversión de datos usando Python.

1. Convertir el valor de la lista al diccionario

En Python, se puede utilizar el siguiente código para convertir los valores de una lista en las claves de un diccionario:

myList = ["name", "age", "location"]
myDict = {k: None for k in myList}
print(myDict)

producción:

{'name': None, 'age': None, 'location': None}

En el código anterior, primero definimos una lista myList, luego usamos la derivación del diccionario para crear un nuevo diccionario myDict, donde la clave del diccionario es cada elemento obtenido de la lista myList, y el valor correspondiente se establece en Ninguno.

Si desea que los valores de la lista correspondan a valores diferentes , simplemente especifique el valor correspondiente en la derivación, por ejemplo:

myList = ["name", "age", "location"]
myValues = ["John", 22, "Bei Jing"]
myDict = {myList[i]: myValues[i] for i in range(len(myList))}
print(myDict)

producción:

{'name': 'John', 'age': 22, 'location': 'Bei Jing'}

 En el código anterior, creamos una lista de claves, valores y luego usamos un bucle y comprensiones de diccionario para crear un diccionario, donde cada valor de la lista corresponde a una clave y un valor en el diccionario.

2. Agregue nuevos datos de valor a la clave del diccionario.

De acuerdo con el código anterior, se agregan 2 nuevos datos para cada tecla, cómo operar

Si desea agregar varios valores para cada clave en un diccionario existente, puede almacenar los valores en una lista y luego usar la lista como el valor correspondiente a la clave, por ejemplo:

myDict = {"name": ["John"], "age": [22], "location": ["Bei Jing"]}
 
# 为 name 增加两个新值
myDict["name"].extend(["Alice", "Bob"])
print(myDict)
 
# 为 age 和 location 增加两个新值
myDict["age"].append(25)
myDict["location"].extend(["Shang Hai", "Guang Zhou"])
print(myDict)

producción:

{'name': ['John', 'Alice', 'Bob'], 'age': [22], 'location': ['Bei Jing']}
{'name': ['John', 'Alice', 'Bob'], 'age': [22, 25], 'location': ['Bei Jing', 'Shang Hai', 'Guang Zhou']}

En el código anterior, primero inicializamos una lista para cada clave en el diccionario, luego podemos usar las claves del diccionario y los métodos de lista para agregar una lista que consta de múltiples valores.

3. Convertir nuevo formato de diccionario

Cómo cambiar los datos de [{'key': 'name', 'value': 'John'}, {'key': 'location', 'value': 'Bei Jing'}] a {'name': 'John ' ', 'ubicación': 'Bei Jing'}

Puede utilizar un bucle para recorrer los diccionarios de la lista y luego extraer las claves y valores de cada diccionario para formar un nuevo diccionario. detalles de la siguiente manera:

# 原始数据
data = [{'key': 'name', 'value': 'John'}, {'key': 'location', 'value': 'Bei Jing'}]
 
# 新的字典
new_dict = {}
for item in data:
    key = item['key']
    value = item['value']
    new_dict[key] = value
 
print(new_dict)

producción:

{'name': 'John', 'location': 'Bei Jing'}

Primero defina un diccionario vacío new_dict para almacenar nuevos datos. Luego use un bucle for para recorrer cada diccionario en los datos originales. En el bucle, use item['key'] y item['value'] para obtener la clave y el valor del diccionario actual respectivamente, y use new_dict[key] = value para almacenarlo en un nuevo diccionario y, finalmente, generar el nuevo diccionario como Can.

4. Comparación y selección de dos conjuntos de datos.

Hay dos conjuntos de datos, list1['code', 'data.totalPage', 'data.type'] y list2['code', 'description', 'errCode', 'error', 'msg', 'message ', 'éxito', 'btSuccess', 'btCode', 'btMsg', 'header.mss'], si los elementos de la lista1 no existen en la lista2, el resultado del filtrado esperado es ['data.totalPage', 'data .tipo ']

El filtrado se puede lograr mediante listas por comprensión y no en declaraciones:

list1 = ['code', 'data.totalPage', 'data.type']
list2 = ['code', 'description', 'errCode', 'error', 'msg', 'message', 'success', 'btSuccess', 'btCode', 'btMsg', 'header.mss']
 
result = [ele for ele in list1 if ele not in list2]
print(result)

producción:

['data.totalPage', 'data.type']

Entre ellos, el formato gramatical de la lista por comprensión es: [valor de retorno en declaración condicional], que puede generar elementos calificados en una nueva lista al mismo tiempo. La declaración no en expresa elementos que no están en la lista. Por lo tanto, la comprensión de la lista en el código anterior es recorrer cada elemento ele en la lista1, y si ele no está en la lista2, agregarlo a la lista de resultados.

5. Fusionar dos códigos independientes

Hay dos fragmentos de código separados, ambos con bucles for.

hj = HandleJson(data_dict)
res = hj.find_key_path('request')
print(res)
print(type(res))
# request-循环
for count_i, api_i in enumerate(res):
    # request
    json_request = eval(str(data_dict) + api_i)
    # print("json_request " + str(json_request))
    # name
    json_name = eval(str(data_dict) + api_i.replace("request", "name"))
    print("count_i 第 " + str(count_i + 1) + " 个接口")
    print("json_name " + str(json_name))
 
hj2 = HandleJson(data_dict)
res2 = hj2.find_key_path('response')
print(res2)
print(type(res2))
# response-循环
for count_i, api_i in enumerate(res2):
    # response
    json_response = eval(str(data_dict) + api_i)
    print("json_response " + str(json_response))
    if json_response:
        print("json_response 不为空")
        for count_i_i, api_i_i in enumerate(json_response):
            # print(api_i_i)
            # name
            json_name = eval(str(api_i_i) + str(["name"]))
            print("count_i_i 第 " + str(count_i_i + 1) + " 个接口")
            print("json_name " + str(json_name))

Cómo combinar estos dos fragmentos de código

Los resultados de los dos bucles se pueden comprimir juntos usando la función zip() y luego ambas listas se pueden recorrer simultáneamente en un único bucle for. El código específico es el siguiente:

hj = HandleJson(data_dict)
res = hj.find_key_path('request')
res2 = hj.find_key_path('response')
for count_i, (api_i, api_i2) in enumerate(zip(res, res2)):
    # request-循环的代码内容
    # response-循环的代码内容

Finalmente me gustaría agradecer a todos los que han leído atentamente mi artículo, la reciprocidad siempre es necesaria, aunque no es algo muy valioso, puedes quitártelo si lo necesitas:

inserte la descripción de la imagen aquí

Subprograma de entrevista de prueba de software

¡El banco de preguntas de pruebas de software superado por millones de personas! ! ! ¡Quién es quién lo sabe! ! ! El miniprograma de cuestionarios más completo de toda la red, puedes usar tu teléfono móvil para hacer los cuestionarios, en el metro o en el autobús, ¡enróllalo!

Se cubren las siguientes secciones de preguntas de la entrevista:

1. Teoría básica de pruebas de software, 2. web, aplicaciones, pruebas de función de interfaz, 3. red, 4. base de datos, 5. linux

6. web, aplicación, automatización de interfaz, 7. pruebas de rendimiento, 8. conceptos básicos de programación, 9. preguntas de la entrevista de horas, 10. preguntas de prueba abiertas, 11. pruebas de seguridad, 12. conceptos básicos de informática

Estos materiales deberían ser el almacén de preparación más completo y completo para los amigos [de pruebas de software]. Este almacén también ha acompañado a decenas de miles de ingenieros de pruebas en el viaje más difícil. ¡Espero que pueda ayudarlo a usted también!   

Supongo que te gusta

Origin blog.csdn.net/qq_48811377/article/details/132667857
Recomendado
Clasificación