Trabajar con matrices y diccionarios
Arreglo — es una estructura de datos que almacena una colección de valores (llamados elementos del arreglo), cada uno identificado por un índice. Se define usando corchetes []. Por ejemplo, la instrucción q = [] significa que la variable q contiene un arreglo vacío. Si q = [2, 5, 7, 4, 9], entonces el arreglo contiene 5 elementos — esta es su longitud. Los índices de los elementos, que representan sus posiciones en el arreglo, comienzan desde 0. Así, el índice del elemento "2" es 0, y el índice del elemento "4" en nuestro arreglo es 3.

Ejemplo: array=[1,2,3,4] o array1=["madre","padre","hijo","hija"]
Un ejemplo de acceso a un elemento de un arreglo: array[1] (devuelve el valor 2)
Diccionario — es una estructura de datos que representa un conjunto especialmente organizado de elementos que almacenan datos. Todos los datos se almacenan en forma de pares clave-valor. El acceso a los elementos de datos se realiza usando la clave. Una clave siempre debe ser única dentro de un solo diccionario, mientras que los datos (valores) pueden duplicarse si es necesario.
Ejemplo: {"SLU":12345,"Name":"Camiseta de hombre, blanca","Size":50,"Price":1000}
Un ejemplo de acceso a un elemento de un arreglo: dictionary["Arreglo"] (devuelve el valor 12345)
Tanto los arreglos como los diccionarios pueden tener estructuras complejas o anidadas — es decir, pueden contenerse unos a otros. Por ejemplo:
un arreglo de diccionarios: products=[{"SKU":12345,"Name":"Camiseta de hombre, blanca","Size":50,"Price":1000},{"SKU":12346,"Name":"Camiseta de hombre, blanca","Size":52,"Price":1000}]
La expresión s = {} significa que la variable s contiene un diccionario que no tiene elementos. Podemos poner en él un par clave-valor, o incluso varios: s = {"key1":"value1", "key2":"value2","key3":"value3"} Cada clave y valor va entre comillas, entre la clave y el valor se coloca dos puntos, y los pares clave-valor se separan con comas.
Los arreglos y diccionarios pueden estar anidados. Veamos un ejemplo:
rainbow = [rojo, naranja, amarillo, verde, azul claro, azul, morado] - este es un arreglo.
Si escribimos
rainbow = {"every":"rojo","hunter":"naranja","wants":" amarillo","know":"verde","where":"azul claro","sits":"azul","pheasant":"morado"}
- obtenemos un diccionario
Si observamos más de cerca el arcoíris, podemos ver, por ejemplo, que el color azul claro es más complejo y consiste en turquesa, azul claro y azul oscuro. Escribamos: azul claro = [turquesa,azul claro, azul oscuro]. Ahora incrustemos nuestro arreglo “blue” en el diccionario “rainbow”:
rainbow = {"first_color":"rojo","second_color":"naranja","third_color":"amarillo","forth_color":"verde","sixth_color":"azul","last_color":"morado"}
Entonces, ¿cómo especificamos la dirección de un elemento, por ejemplo “turquesa”?
Y en los arreglos, la dirección se hace por índice, así que la dirección del elemento "turquesa" es 0.
Resumamos esto: ["where"][0] - es la dirección del elemento "turquesa".


Cómo trabajar con direcciones (JSON)
Al recibir respuestas de servicios de terceros a través de API, lo más frecuente es obtener JSON, que representa un diccionario. Muy a menudo, necesitamos almacenar un valor específico de este diccionario en una variable.
La mejor manera de entender el principio de direccionamiento en JSON es mediante un ejemplo:{"suggestions": [{"value": "Dirham", "unrestricted_value": "Dirham", "data": {"code": "784", "strcode": "AED", "name": "Dirham", "country": "UAE"}}]}
Aquí tenemos un diccionario que contiene un único par clave-valor suggestions - la clave del arreglo: [{"value": "Dirham", "unrestricted_value": "Dirham", "data": {"code": "784", "strcode": "AED", "name": "Dirham", "country": "UAE"}}]
El valor de la suggestions clave es un arreglo con un solo elemento — un diccionario: {"value": "Dirham", "unrestricted_value": "Dirham", "data": {"code": "784", "strcode": "AED", "name": "Dirham", "country": "UAE"}} suggestions|0 - es la clave del primer (y único) elemento del arreglo.{"value": "Dirham", "unrestricted_value": "Dirham", "data": {"code": "784", "strcode": "AED", "name": "Dirham", "country": "UAE"}}
suggestions|0|value - es la clave del valor "rublo bielorruso"
{"suggestions": [{"value": "Dirham", "unrestricted_value": "Dirham", "data": {"code": "784", "strcode": "AED", "name": "Dirham", "country": "UAE"}}]}
La ruta de clave más larga en este JSON es: suggestions|0|data|strcode - es la clave de AED

{"suggestions": [{"value": "Dirham", "unrestricted_value": "Dirham", "data": {"code": "784", "strcode": "AED", "name": "Dirham", "country": "UAE"}}]}
Las claves se separan con una barra vertical. Si el JSON contiene un arreglo, el acceso a sus elementos se hace por índice, comenzando desde 0, y también se escribe usando una barra vertical. La indexación de arreglos comienza en 0.
En las direcciones, los números se tratan igual que las cadenas y viceversa. Por ejemplo, '6' y 6 se consideran iguales.
Además de las respuestas de API, los arreglos y diccionarios también pueden usarse para almacenar datos de forma cómoda.
Por ejemplo, si necesitas restringir el acceso a una sección específica de un bot a ciertos usuarios, puedes guardar sus IDs en un arreglo, colocarlo en una variable global del proyecto y usarlo en condiciones de bloques o lógica de flechas para comprobar si el ID del usuario está incluido en el arreglo.
Otro ejemplo es cuando necesitas almacenar el número de puntos de cada jugador en un juego por equipos. Puedes usar un diccionario para esto, donde las claves son IDs de usuario y los valores son sus puntos.
A veces, es necesario modificar un arreglo o un diccionario. Las funciones descritas en este artículo están diseñadas exactamente para ese propósito. La mayoría de los métodos descritos a continuación funcionan tanto con arreglos como con diccionarios.
Trabajar con arreglos
Cómo crear un arreglo
Creación de arreglo - declarar un arreglo
array_name = []
Cómo limpiar un arreglo
Limpiar un arreglo es esencialmente lo mismo que declarar un arreglo vacío:
array_name = []
Cómo acceder a un elemento de un arreglo
Cómo reemplazar un valor en un arreglo
Ejemplo
Ejemplo:
Para reemplazar el valor de un elemento específico del arreglo, usa la siguiente sintaxis: array_name[index] = value

Respuesta:

Cómo comprobar si un elemento está en un arreglo
Descripción
in_array(mass, value) - para comprobar si un elemento existe en un arreglo.
Parámetros: ! mass - arreglo ! value - valor para buscar
Devuelve True o False según si el valor se encuentra o no.
Cómo averiguar la longitud del arreglo
Descripción
arr_len(mass) - para averiguar la longitud del arreglo
Parámetro: ! mass - arreglo
Resultado: Devuelve un número - la longitud del arreglo.
¡Ten cuidado al pasar parámetros a la función! Si se llama sin parámetros, devuelve 0; si el parámetro no es ni un arreglo ni un diccionario, devuelve -1.
Cómo insertar un elemento al final de un arreglo?
Descripción
append(mass, element, priznak) - para insertar un elemento al final de un arreglo.
Parámetros:
! mass - arreglo ! element - elemento a insertar priznak - indicador que señala si es un arreglo o un diccionario
Devuelve el arreglo con el valor añadido al final. Para actualizar el arreglo original, usa la asignación: mass = append(mass, element, priznak)
Por defecto, los datos se insertan como cadenas. Si necesitas insertar un arreglo o diccionario, pasa un parámetro adicional True. Esto indica que estás insertando JSON.
Ejemplo
Ejemplo de uso:


Ejemplo de agregar y eliminar de un arreglo:

p se elimina del arreglo project.pzdrEjemplo de creación de un arreglo con arreglos dentro:

El resultado de la ejecución de la función:

Cómo insertar un valor en una posición específica de un arreglo
Descripción
insert(mass, index, value, priznak) - para insertar un elemento en una posición específica del arreglo.
Parámetros: ! mass - arreglo ! index - posición de inserción ! value - value indicador - indicador de si se agrega a un arreglo o a un diccionario.
Resultado: Devuelve un arreglo con el valor añadido en la posición especificada. En otras palabras, para añadir el valor al mismo arreglo, usa el comando en la siguiente forma: mass = insert(mass, index, value, indicator)
Por defecto, los datos se insertan como cadenas. Si necesitas insertar un arreglo o diccionario, pasa un parámetro adicional True. Esto indica que estás insertando JSON..
Ejemplo
Ejemplo:

Resultado:
Veamos un ejemplo más complejo: agregar un diccionario t a un arreglo s:

En la función, indicamos que queremos agregar un diccionario en la posición 1. Veamos el resultado:

Cómo eliminar un elemento del arreglo
del() | del | remove()
Descripción
Por índice
del(mass, key) - elimina un elemento del arreglo por su índice.
Parámetros: ! mass - nombre del arreglo; ! key - el índice del valor que se va a eliminar
Devuelve un nuevo arreglo con el elemento eliminado; el arreglo original permanece sin cambios. Para eliminar y actualizar el mismo arreglo, usa un comando como: mass = del(mass, key)
Si tu arreglo contiene números y quieres eliminar un elemento por valor, usa la función remove().
del name['index'] - eliminación de un valor de un arreglo por índice
Parámetros: ! name- nombre del arreglo; ! index- el índice del valor que se va a eliminar
Por valor
remove(mass, value) - para eliminar un valor de un arreglo.
Parámetros: ! mass - nombre del arreglo; ! value - el valor a eliminar del arreglo
Resultado: Devuelve un arreglo modificado, dejando el arreglo original sin cambios. Para eliminar un elemento y actualizar el mismo arreglo, usa el comando en la siguiente forma: mass = remove(mass, key)
Ejemplos
Ejemplo de eliminación de un elemento por índice:


Ejemplo de eliminación de un elemento de un arreglo por su valor:


Cómo obtener la posición de un elemento en un arreglo
Descripción
index(mass, value)
Parámetros: ! mass - nombre del arreglo ! value - el valor cuya posición necesita determinarse.
Si el elemento no está en el arreglo, la función devolverá -1.
Ejemplos
Ejemplo de determinación de la posición de un elemento en un arreglo:

Veamos más de cerca el resultado en detalle:

Como podemos ver, dado que el número 5 no está en el arreglo, la función devolvió -1.
Cómo convertir un arreglo a texto legible por humanos
Descripción
massive_to_text(massive, header, numbered,delimiter1,delimiter2)
Parámetros:
! massive – el arreglo a mostrar, header – un título que aparecerá al inicio de la salida numbered – si se pasa cualquier valor, los elementos del arreglo se numerarán delimiter1 – el carácter colocado al final de cada línea de elemento (el valor predeterminado es ‘;’), delimiter2 – el carácter usado después del número del elemento cuando el numerado está habilitado (el valor predeterminado es ‘)’)
Cómo excluir un arreglo de otro
Descripción
except_arr(mas1, mas2)
Parámetros:
! mas1 - el arreglo del que se excluirán elementos, ! mas2 - el arreglo que contiene los elementos que se excluirán
Cómo encontrar la intersección de arreglos
Descripción
cross_arr(mas1, mas2)
Parámetros:
! mas1 - el arreglo en el que buscar ! mas2 - el arreglo que contiene los elementos que se buscan
Cómo fusionar arreglos
Descripción
No existe una función integrada específicamente para fusionar arreglos, pero se puede hacer fácilmente:
Para combinar arreglos, realiza una concatenación de cadenas, luego reemplaza '][' por una coma ','
Ejemplos
Este es un ejemplo en el campo de la Calculadora

Este es un ejemplo de un bot en funcionamiento

Cómo sumar los elementos de un arreglo
Descripción
sum_array(array)
Parámetros:
arreglo - el arreglo cuyos elementos deben sumarse
¡Atención! La función trabaja con arreglos de un formato específico.
Formatos aceptados: - [1,2,3,4] o ‘[1,2,3,4]’. Si el arreglo contiene números representados como cadenas, deben ir entre comillas dobles; por ejemplo, [1,2,3,”-4”]. Si el arreglo contiene cadenas alfabéticas, el cálculo fallará.
Ejemplo de uso incorrecto: mas = [1,2,3,"a"] result = sum_array(mas)
Esto resultará en un error: el arreglo tiene elementos no compatibles
Cómo mezclar los elementos de un arreglo
Para ordenar arreglos y diccionarios
sort() | sort_by_value()
Descripción
Ordenamiento en un arreglo o un diccionario
sort(mass, b) - ordena un arreglo por valor y un diccionario por clave
Parámetros:
! mass - arreglo/diccionario b - orden de clasificación (False – ascendente (predeterminado), True – descendente)
Ordenar diccionario por su valor
sort_by_value(dict, b) - ordena un diccionario por valores.
Parámetros: ! dict- diccionario b - orden de clasificación (False – ascendente (predeterminado), True – descendente)
Ejemplo
Ejemplo de ordenar un arreglo en orden descendente y un diccionario en orden ascendente:


Ordenar un diccionario por valores:


Convertir un arreglo/diccionario en botones
tools_make_button_str_checker() | tools_check_user_input()
Descripción
Convertir un arreglo/diccionario en botones
tools_make_button_str_checker(values_list, key, in_line, button_type, checker_with_numbers)
Parámetros:
! values_list - un arreglo de cadenas o diccionarios cuyos datos se usarán para construir un teclado o una lista numerada
key - la clave por la que se hará la selección desde un arreglo de diccionarios
in_line - número de botones por fila (predeterminado: 1)
button_type - tipo de botones (predeterminado: teclado de respuesta). Valores posibles: 0 - teclado de respuesta, 1 - teclado en línea (botones en texto)
checker_with_numbers - si se deben agregar números de botón al arreglo "checker". Valores posibles: 0 - no agregar números, 1 - agregar números (predeterminado: 1 – agregar números)
Resultado de la función: un diccionario con la forma:
{"numbered_list":"1. Camisetas\n2. Pantalones cortos\n3. Calcetines\n4. Gorras\n","buttons":[{"type":"inline","text":"Camisetas","line":0,"index_in_line":0},{"type":"inline","text":"Pantalones cortos","line":0,"index_in_line":1},{"type":"inline","text":"Calcetines","line":1,"index_in_line":0},{"type":"inline","text":"Gorras","line":1,"index_in_line":1}],"checker":"Camisetas;1;Pantalones cortos;2;Calcetines;3;Gorras;4;"}
Luego se pueden insertar los valores del diccionario en campos del constructor:


Obtener un valor de diccionario basado en la selección del cliente
tools_check_user_input(values_list, user_input, key, return_key)
Parámetros:
! values_list - un arreglo de cadenas o diccionarios cuyos datos se usarán para construir un teclado o una lista numerada Ejemplo de diccionario: [{"text":"Camisetas","price":100},{"text":"Pantalones cortos","price":150},{"text":"Calcetines","price":20},{"text":"Gorras","price":50}] ! user_input - el valor ingresado por el usuario de uno de los valores en values_list Ejemplo de valor: Gorras key - кla clave usada para la selección desde el arreglo values_list de diccionarios Ejemplo de clave: text return_key - el valor devuelto para la clave especificada desde values_list Ejemplo de valor devuelto: price
Ejemplo
Analicemos el uso de la función con un ejemplo de carrito de compras:
1.Define un arreglo y conviértelo en una lista numerada, botones y una lista de valores posibles (para mensajeros sin botones) usando la función tools_make_button_str_checker().


2.Usa los botones obtenidos y los valores numbered_list para habilitar la selección de productos:

3.Usa la lista de verificación de valores posibles para validar la entrada del cliente:

4.Finalmente, muestra el precio del producto seleccionado al cliente. Esto es conveniente hacerlo usando la función tools_check_user_input()

Selección de datos de un arreglo
Descripción
array_slice(array, start_index, end_index)
Parámetros:
! arreglo - arreglo ! start_index - inicio del corte end_index - fin del corte (predeterminado: hasta el final)
Ejemplo
Seleccionemos un subarreglo comenzando desde el primer elemento:

res será ["Pantalones cortos", "Calcetines", "Gorras"]
Otro ejemplo de selección de un subarreglo desde el elemento 0 hasta el 2 del arreglo:

res será ["Camisetas", "Pantalones cortos"]
Desempaquetado de elementos de un arreglo
Función
unpack_list(array, var_name) - este método recorre un arreglo y crea una variable separada para cada elemento del arreglo con nombres como var1, var2, var3, etc.
! array - parámetro obligatorio, un arreglo de elementos
var_name - parámetro opcional, una cadena. Si se proporciona, se usa para nombrar los elementos desempaquetados. Ejemplos:
Si se proporciona var_name, los nombres de las variables se forman usando var_name
var_name debe seguir las reglas de nomenclatura de variables.
Ejemplo
Ejemplo 1:
array1 = ["one", "two", "three"]
ans1 = unpack_list(array1)
Resultado - variables creadas:
var1 = 'one'
var2 = 'two'
var3 = 'three'
Ejemplo 2:
array2 = ["one", "two", "three"]
var_name = 'custom'
ans2 = unpack_list(array2, var_name)
Resultado - variables creadas:
custom1 = 'one'
custom2 = 'two'
custom3 = 'three'
Cómo devolver una lista sin elementos duplicados
Descripción
remove_duplicates(array) - devuelve una lista sin elementos duplicados.
! array - parámetro obligatorio. La lista original de elementos con duplicados.
Ejemplo
Ejemplo:
arr = [1, 2, 5, 1, 5, 3]
new_arr = remove_duplicates(arr)
Resultado - a la variable new_arr se le asignará la lista [1, 2, 5, 3].
Cómo crear un diccionario
Cómo limpiar un diccionario
Cómo obtener el valor de un diccionario por clave
Ejemplos
Ejemplo de trabajo con un diccionario:
En este caso específico, accedemos al valor por la clave "a". Para recuperar un valor de un diccionario usando una clave específica, utiliza el siguiente formato: name_dictionary["key"]

Respuesta:

Cómo obtener una lista de claves de un diccionario
Cómo obtener una lista de valores de un diccionario
Cómo obtener los valores de la lista de diccionarios por la clave especificada
Descripción
get_values_by_key(data, key) - permite obtener valores de la lista de diccionarios por la clave especificada. Devuelve una lista de valores.
Cómo reemplazar un valor en un diccionario
Descripción
name['key'] = value - reemplazando el valor del elemento del diccionario por la clave especificada. Si se especifica una clave inexistente, se agregará un nuevo elemento al diccionario.
Descripción
Ejemplo:
Para reemplazar el valor de un elemento específico de un array, escriba una asignación como array_name[index] = value o dictionary_name[key] = value

Respuesta:

Cómo agregar un valor a un diccionario
Descripción
dictionary_name['key'] = 'value' - agregando un nuevo valor al diccionario.
Si la clave no existía antes, se agregará un nuevo par clave–valor; de lo contrario, se reemplazará el valor de la clave especificada.
Cómo comprobar si existe una clave en un diccionario
Descripción
exist_key(mass, key) - para comprobar si existe una clave en un diccionario.
Parámetros:
mass - dictionary
key - la clave que se va a buscar
Devuelve True o False según si se encontró la clave.
Cómo comprobar la posición de una clave en un diccionario
Descripción
key_index(mass, key) - para comprobar la posición de una clave en un diccionario.
Parámetros: mass - diccionario key - Clave que se va a buscar.
La posición en un diccionario se cuenta desde 0. Por lo tanto, el primer elemento es 0, el segundo elemento es 1, y así sucesivamente.
Cómo obtener el número de elementos en un diccionario
Descripción
arr_len(mass) - para determinar la longitud de un diccionario.
Parámetro: mass - dictionary
Resultado: Devuelve un número – la longitud del diccionario.
Будьте внимательны Al pasar un parámetro a la función: si la función se llama sin parámetros, devuelve 0; si el parámetro no es una lista ni un diccionario, devuelve -1.
Cómo eliminar un elemento de un diccionario
Descripción
Por índice o clave
del(mass, key) - para eliminar un elemento de una lista por índice o de un diccionario por clave. Toma dos parámetros: la lista/diccionario y el índice/clave a eliminar. Devuelve el diccionario o la lista modificados sin cambiar el objeto original.
Si los valores en una lista o diccionario son números, use la función remove() para eliminar un elemento.
Ejemplo de código para copiar
Ejemplo con un diccionario
s={"1":123, "2":234, "q":{"w":"e"}}
q=del(s,'q')
Ejemplo con un array
s=["John", "Ann", "Sophie"]
q=del(s, 1)
Cómo convertir un diccionario en un texto legible por humanos
Descripción
humanize(dict, delimiter, from_i, to_i)
Parámetros:
dict - nombre del diccionario delimiter - delimitador entre líneas from_i - índice del elemento desde el que empezar la salida (basado en 0) to_i - índice del elemento donde terminar la salida (no inclusivo)
Para ordenar diccionarios
sort() | sort_by_value()
Descripción
Ordenación de diccionarios
sort(dict, b) - Ordena una lista por valor y un diccionario por clave
Parámetros:
! dict- diccionario
b - dirección de ordenación (False – ascendente por defecto, True – descendente)
Ordenación de diccionarios por valor
sort_by_value(dict, b) - Ordenación de un diccionario por valores.
Parámetros:
! dict- diccionario
b - dirección de ordenación (False – ascendente por defecto, True – descendente)
Ejemplos
Ejemplo: ordenar una lista en orden descendente y un diccionario en orden ascendente:


Ordenación de un diccionario por sus valores:


Ejemplo de código para copiar
Ejemplo: ordenar una lista en orden descendente y un diccionario en orden ascendente:
array1=[5,4,0,6,3,0]
array1=sort(array1, True)
dict={"Ann":5, "John":4, "Sophie":0, "Alex":6, "Kate":3, "Harry":0}
dict=sort(dict)
Ordenación de un diccionario por sus valores:
dict={"Ann":5, "John":4, "Sophie":0, "Alex":6, "Kate":3, "Harry":0}
dict=sort_by_value(dict)
Última actualización

































