Trabalhando com arrays e dicionários

Array — é uma estrutura de dados que armazena uma coleção de valores (chamados elementos do array), cada um identificado por um índice. Ela é definida usando colchetes []. Por exemplo, a instrução q = [] significa que a variável q contém um array vazio. Se q = [2, 5, 7, 4, 9], então o array contém 5 elementos — esse é o seu tamanho. Os índices dos elementos, que representam suas posições no array, começam em 0. Então, o índice do elemento "2" é 0, e o índice do elemento "4" em nosso array é 3.

Exemplo: array=[1,2,3,4] ou array1=["mãe","pai","filho","filha"]

Um exemplo de acesso a um elemento de array: array[1] (retorna o valor 2)

Dicionário — é uma estrutura de dados que representa um conjunto de elementos organizado de forma especial, que armazena dados. Todos os dados são armazenados na forma de pares chave-valor. O acesso aos elementos de dados é feito usando a chave. Uma chave sempre precisa ser única dentro de um único dicionário, enquanto os dados (valores) podem ser duplicados, se necessário.

Exemplo: {"SLU":12345,"Nome":"Camiseta masculina, branca","Tamanho":50,"Preço":1000}

Um exemplo de acesso a um elemento de array: dictionary["Array"] (retorna o valor 12345)

Tanto arrays quanto dicionários podem ter estruturas complexas ou aninhadas — isto é, podem conter uns aos outros. Por exemplo:

um array de dicionários: products=[{"SKU":12345,"Nome":"Camiseta masculina, branca","Tamanho":50,"Preço":1000},{"SKU":12346,"Nome":"Camiseta masculina, branca","Tamanho":52,"Preço":1000}]

A expressão s = {} significa que a variável s contém um dicionário que não possui elementos. Podemos colocar nele um par chave-valor, ou até vários: s = {"chave1":"valor1", "chave2":"valor2","chave3":"valor3"} Cada chave e valor fica entre aspas, dois pontos são colocados entre a chave e o valor, e os pares chave-valor são separados por vírgulas.

Arrays e dicionários podem ser aninhados. Vamos ver um exemplo:

arco-íris = [vermelho, laranja, amarelo, verde, azul claro, azul, roxo] - isto é um array.

Se escrevermos

arco-íris = {"todo":"vermelho","caçador":"laranja","quer":" amarelo","saber":"verde","onde":"azul claro","senta":"azul","faisão":"roxo"}

- obtemos um dicionário

Se olharmos com atenção para o arco-íris, podemos ver, por exemplo, que a cor azul claro é mais complexa e consiste em turquesa, azul claro e azul escuro. Vamos escrever: azul claro = [turquesa,azul claro, azul escuro]. Agora vamos inserir nosso array “azul” no dicionário “arco-íris”:

arco-íris = {"primeira_cor":"vermelho","segunda_cor":"laranja","terceira_cor":"amarelo","quarta_cor":"verde","sexta_cor":"azul","última_cor":"roxo"}

Então, como especificamos o endereço de um elemento, por exemplo, “turquesa”?

E, em arrays, o endereçamento é feito por índice, então o endereço do elemento "turquesa" é 0.

Resumindo isso: ["onde"][0] - é o endereço do elemento "turquesa".

Como trabalhar com endereçamento (JSON)

Ao receber respostas de serviços de terceiros via API, na maioria das vezes obtemos JSON, que representa um dicionário. Com muita frequência, precisamos armazenar um valor específico desse dicionário em uma variável.

A melhor maneira de entender o princípio de endereçamento em JSON é por meio de um exemplo:{"sugestões": [{"value": "Dirham", "unrestricted_value": "Dirham", "data": {"code": "784", "strcode": "AED", "name": "Dirham", "country": "Emirados Árabes Unidos"}}]}

Aqui temos um dicionário contendo um único par chave-valor sugestões - a chave do array: [{"value": "Dirham", "unrestricted_value": "Dirham", "data": {"code": "784", "strcode": "AED", "name": "Dirham", "country": "Emirados Árabes Unidos"}}]

O valor da sugestões chave é um array com apenas um elemento — um dicionário: {"value": "Dirham", "unrestricted_value": "Dirham", "data": {"code": "784", "strcode": "AED", "name": "Dirham", "country": "Emirados Árabes Unidos"}} sugestões|0 - é a chave do primeiro (e único) elemento do array.{"value": "Dirham", "unrestricted_value": "Dirham", "data": {"code": "784", "strcode": "AED", "name": "Dirham", "country": "Emirados Árabes Unidos"}}

sugestões|0|value - é a chave para o valor "rublo bielorrusso"

{"suggestions": [{"value": "Dirham", "unrestricted_value": "Dirham", "data": {"code": "784", "strcode": "AED", "name": "Dirham", "country": "Emirados Árabes Unidos"}}]}

O caminho de chave mais longo neste JSON é: sugestões|0|data|strcode - é a chave para AED

{"suggestions": [{"value": "Dirham", "unrestricted_value": "Dirham", "data": {"code": "784", "strcode": "AED", "name": "Dirham", "country": "Emirados Árabes Unidos"}}]}

As chaves são separadas por uma barra vertical. Se o JSON contiver um array, o acesso aos seus elementos é feito por índice, começando em 0, e também é escrito usando uma barra vertical. A indexação de arrays começa em 0.

No endereçamento, números são tratados da mesma forma que strings e vice-versa. Por exemplo, '6' e 6 são considerados iguais.

Além das respostas da API, arrays e dicionários também podem ser usados para armazenar dados de forma conveniente.

Por exemplo, se você precisar restringir o acesso a uma seção específica de um bot para certos usuários, pode armazenar os IDs deles em um array, colocá-lo em uma variável global do projeto e usá-lo em condições de blocos ou lógica de setas para verificar se o ID do usuário está incluído no array.

Outro exemplo é quando você precisa armazenar a quantidade de pontos de cada jogador em um jogo em equipe. Você pode usar um dicionário para isso, onde as chaves são os IDs dos usuários e os valores são seus pontos.

Às vezes, é necessário modificar um array ou um dicionário. As funções descritas neste artigo foram criadas exatamente para esse propósito. A maioria dos métodos descritos abaixo funciona tanto com arrays quanto com dicionários.

Trabalhando com arrays

Como criar um array

Criando array - declarando um array

array_name = []

Como limpar um array

Limpar um array é essencialmente o mesmo que declarar um array vazio:

array_name = []

Como acessar um elemento do array

chevron-rightDescriçãohashtag

name[index] - acesso a um elemento do array por índice ou por valor

chevron-rightExemplohashtag

Vamos ver alguns exemplos de trabalho com arrays:

Exemplo de acesso a um elemento do array por seu índice:

Exemplo de obtenção do último elemento do array:

chevron-rightExemplo de código para copiarhashtag

Como substituir um valor em um array

chevron-rightDescriçãohashtag

name[index] = value - substituição de um elemento do array por um índice informado

chevron-rightExemplohashtag

Exemplo:

Para substituir o valor de um elemento específico do array, use a seguinte sintaxe: array_name[index] = value

Resposta:

chevron-rightExemplo de código para copiarhashtag

Como verificar se um elemento está em um array

chevron-rightDescriçãohashtag

in_array(mass, value) - para verificar se um elemento existe em um array.

Parâmetros: ! mass - array ! value - valor para pesquisa

Retorna True ou False dependendo se o valor foi encontrado ou não.

chevron-rightExemplohashtag

Exemplo:

chevron-rightExemplo de código para copiarhashtag

Como descobrir o tamanho do array

chevron-rightDescriçãohashtag

arr_len(mass) - para descobrir o tamanho do array

Parâmetro: ! mass - array

Resultado: retorna um número - o tamanho do array.

circle-exclamation
chevron-rightExemplohashtag

Exemplo de uso:

Resultado:

chevron-rightExemplo de código para copiarhashtag

Como inserir um elemento no final de um array?

chevron-rightDescriçãohashtag

append(mass, element, priznak) - para inserir um elemento no final de um array.

Parâmetros:

! mass - array ! element - elemento a inserir priznak - sinal que indica se é um array ou um dicionário

Retorna o array com o valor adicionado no final. Para atualizar o array original, use a atribuição: mass = append(mass, element, priznak)

circle-exclamation
chevron-rightExemplohashtag

Exemplo de uso:

Exemplo de adição e remoção de um array:

Neste exemplo, um elemento é adicionado ao array project.vibpzdr, e o valor p é removido do array project.pzdr

Exemplo de criação de um array com arrays dentro:

O resultado da execução da função:

chevron-rightExemplo de código para copiarhashtag

Como inserir um valor em uma posição específica de um array

chevron-rightDescriçãohashtag

insert(mass, index, value, priznak) - para inserir um elemento em uma posição específica do array.

Parâmetros: ! mass - array ! index - posição de inserção ! value - value indicador - indicador de adição a um array ou a um dicionário.

Resultado: Retorna um array com o valor adicionado na posição especificada. Em outras palavras, para adicionar o valor ao mesmo array, use o comando na seguinte forma: mass = insert(mass, index, value, indicator)

circle-exclamation
chevron-rightExemplohashtag

Exemplo:

Resultado:

Vamos ver um exemplo mais complexo - adicionando um dicionário t a um array s:

Na função, indicamos que queremos adicionar um dicionário na posição 1. Vamos ver o resultado:

chevron-rightExemplo de código para copiarhashtag

Como deletar um elemento do array

del() | del | remove()

chevron-rightDescriçãohashtag

Por índice

del(mass, key) - remove um elemento do array pelo seu índice.

Parâmetros: ! mass - nome do array; ! key - o índice do valor a ser removido

Retorna um novo array com o elemento removido; o array original permanece inalterado. Para excluir e atualizar o mesmo array, use o comando assim: mass = del(mass, key)

circle-exclamation

del name['index'] - removendo um valor de um array pelo índice

Parâmetros: ! name- nome do array; ! index- o índice do valor a ser removido

Por valor

remove(mass, value) - para excluir um valor de um array.

Parâmetros: ! mass - nome do array; ! value - o valor a ser removido do array

Resultado: Retorna um array modificado, deixando o array original inalterado. Para remover um elemento e atualizar o mesmo array, use o comando na seguinte forma: mass = remove(mass, key)

chevron-rightExemploshashtag

Exemplo de remoção de um elemento por índice:

Exemplo de remoção de um elemento do array por seu valor:

chevron-rightExemplo de código para copiarhashtag

Como obter a posição de um elemento em um array

chevron-rightDescriçãohashtag

index(mass, value)

Parâmetros: ! mass - nome do array ! value - o valor cuja posição precisa ser determinada.

Se o elemento não estiver no array, a função retornará -1.

chevron-rightExemploshashtag

Exemplo de determinação da posição de um elemento em um array:

Vamos olhar o resultado com mais detalhes:

Como podemos ver, como o número 5 não está no array, a função retornou -1.

chevron-rightExemplo de código para copiarhashtag

Como converter um array em texto legível para humanos

chevron-rightDescriçãohashtag

massive_to_text(massive, header, numbered,delimiter1,delimiter2)

Parâmetros:

! massive – o array a ser exibido, header – um título que aparecerá no início da saída numbered – se qualquer valor for passado, os elementos do array serão numerados delimiter1 – o caractere colocado no final da linha de cada elemento (o padrão é ‘;’), delimiter2 – o caractere usado após o número do item quando a numeração está ativada (o padrão é ‘)’ )

chevron-rightExemploshashtag

Exemplo simples:

Como resultado, o array será exibido como uma lista numerada:

chevron-rightExemplo de código para copiarhashtag

Como excluir um array de outro

chevron-rightDescriçãohashtag

except_arr(mas1, mas2)

Parâmetros:

! mas1 - o array do qual os elementos serão excluídos, ! mas2 - o array que contém os elementos a serem excluídos

chevron-rightExemploshashtag

Vamos ver o exemplo:

chevron-rightExemplo de código para copiarhashtag

Como encontrar a interseção de arrays

chevron-rightDescriçãohashtag

cross_arr(mas1, mas2)

Parâmetros:

! mas1 - o array no qual pesquisar ! mas2 - o array que contém os elementos a serem procurados

chevron-rightExemploshashtag

chevron-rightExemplo de código para copiarhashtag

Como mesclar arrays

chevron-rightDescriçãohashtag

Não existe uma função nativa específica para mesclar arrays, mas isso pode ser feito facilmente:

Para combinar arrays, faça a concatenação de strings, depois substitua '][' por uma vírgula ','

chevron-rightExemploshashtag

Este é um exemplo no campo Calculadora

Este é um exemplo de um bot funcionando

chevron-rightExemplo de código para copiarhashtag

Como somar os elementos de um array

chevron-rightDescriçãohashtag

sum_array(array)

Parâmetros:

array - o array cujos elementos precisam ser somados

circle-exclamation
chevron-rightExemploshashtag

Resultado:

chevron-rightExemplo de código para copiarhashtag

Como embaralhar os elementos de um array

chevron-rightDescriçãohashtag

shuffle_massive(massive

Parâmetros:

massive - o array cujos elementos precisam ser embaralhados.

chevron-rightExemploshashtag

Resultados da execução da função:

chevron-rightExemplo de código para copiarhashtag

Para classificar arrays e dicionários

sort() | sort_by_value()

chevron-rightDescriçãohashtag

Ordenação em um array ou em um dicionário

sort(mass, b) - classifica um array por valor e um dicionário por chave

Parâmetros:

! mass - array/dicionário b - ordem de classificação (False – crescente (padrão), True – decrescente)

Ordenação de dicionário por seu valor

sort_by_value(dict, b) - classifica um dicionário pelos valores.

Parâmetros: ! dict- dicionário b - ordem de classificação (False – crescente (padrão), True – decrescente)

chevron-rightExemplohashtag

Exemplo de classificação de um array em ordem decrescente e de um dicionário em ordem crescente:

resultado da classificação

Classificando um dicionário pelos valores:

resultado da classificação

Convertendo um array/dicionário em botões

tools_make_button_str_checker() | tools_check_user_input()

chevron-rightDescriçãohashtag

Convertendo um array/dicionário em botões

tools_make_button_str_checker(values_list, key, in_line, button_type, checker_with_numbers)

Parâmetros:

! values_list - um array de strings ou dicionários cujos dados serão usados para construir um teclado ou uma lista numerada

key - a chave pela qual a seleção será feita a partir de um array de dicionários

in_line - número de botões por linha (padrão: 1)

button_type - tipo de botões (padrão: teclado de resposta). Valores possíveis: 0 - teclado de resposta, 1 - teclado inline (botões no texto)

checker_with_numbers - se deve adicionar números dos botões ao array "checker". Valores possíveis: 0 - não adicionar números, 1 - adicionar números (padrão: 1 – adicionar números)

Resultado da função — um dicionário no formato:

{"numbered_list": "1. Camisetas\n2. Bermudas\n3. Meias\n4. Bonés\n","buttons":[{"type":"inline","text":"Camisetas","line":0,"index_in_line":0},{"type":"inline","text":"Bermudas","line":0,"index_in_line":1},{"type":"inline","text":"Meias","line":1,"index_in_line":0},{"type":"inline","text":"Bonés","line":1,"index_in_line":1}],"checker":"Camisetas;1;Bermudas;2;Meias;3;Bonés;4;"}

Os valores do dicionário podem então ser inseridos nos campos do construtor:

Obtendo um valor do dicionário com base na seleção do cliente

tools_check_user_input(values_list, user_input, key, return_key)

Parâmetros:

! values_list - um array de strings ou dicionários cujos dados serão usados para construir um teclado ou uma lista numerada Exemplo de dicionário: [{"text":"Camisetas","price":100},{"text":"Bermudas","price":150},{"text":"Meias","price":20},{"text":"Bonés","price":50}] ! user_input - o valor digitado pelo usuário dentre um dos valores em values_list Exemplo de valor: Bonés key - a chave usada para seleção a partir do array de dicionários values_list Exemplo de chave: text return_key - o valor retornado para a chave especificada de values_list Exemplo de valor de retorno: price

chevron-rightExemplohashtag

Vamos detalhar o uso da função com um exemplo de carrinho de compras:

1. Defina um array e converta-o em uma lista numerada, botões e uma lista de valores possíveis (para mensageiros sem botões) usando a função tools_make_button_str_checker().

Resultado do uso tools_make_button_str_checker() função

2. Use os valores obtidos de buttons e numbered_list para permitir a seleção do produto:

3. Use o verificador da lista de valores possíveis para validar a entrada do cliente:

4. Por fim, exiba o preço do produto selecionado para o cliente. Isso é conveniente fazer usando a função tools_check_user_input()

chevron-rightExemplo de código para copiarhashtag

Seleção de dados de um array

chevron-rightDescriçãohashtag

array_slice(array, start_index, end_index)

Parâmetros:

! array - array ! start_index - início do recorte end_index - fim do recorte (padrão: até o final)

chevron-rightExemplohashtag

Vamos selecionar um subarray a partir do 1º elemento:

Exemplo de uso de array_slice()

res será ["Bermudas", "Meias", "Bonés"]

Outro exemplo de seleção de um subarray do 0º ao 2º elemento do array:

Exemplo de uso de array_slice()

res será ["Camisetas", "Bermudas"]

chevron-rightExemplo de código para copiarhashtag

Desempacotando elementos do array

chevron-rightFunçãohashtag

unpack_list(array, var_name) - este método percorre um array e cria uma variável separada para cada elemento do array com nomes como var1, var2, var3 etc.

! array - parâmetro obrigatório, um array de elementos

var_name - parâmetro opcional, uma string. Se fornecido, é usado para nomear os elementos desempacotados. Exemplos:

Se var_name for fornecido, os nomes das variáveis são formados usando var_name

var_name deve seguir as regras de nomenclatura de variáveis.

chevron-rightExemplohashtag

Exemplo 1:

array1 = ["um", "dois", "três"]

ans1 = unpack_list(array1)

Resultado - variáveis de deal criadas:

var1 = 'um'

var2 = 'dois'

var3 = 'três'

Exemplo 2:

array2 = ["um", "dois", "três"]

var_name = 'customizado'

ans2 = unpack_list(array2, var_name)

Resultado - variáveis de deal criadas:

custom1 = 'um'

custom2 = 'dois'

custom3 = 'três'

Como retornar uma lista sem elementos duplicados

chevron-rightDescriçãohashtag

remove_duplicates(array) - retorna uma lista sem elementos duplicados.

! array - parâmetro obrigatório. A lista original de elementos com duplicatas.

chevron-rightExemplohashtag

Exemplo:

arr = [1, 2, 5, 1, 5, 3]

new_arr = remove_duplicates(arr)

Resultado - a lista [1, 2, 5, 3] será atribuída à variável new_arr.

Como criar um dicionário

chevron-rightDescriçãohashtag

Criando dicionário - declarando um dicionário

name_dictionary = {}

Como limpar um dicionário

chevron-rightDescriçãohashtag

Limpar - não é nada mais do que declarar um dicionário vazio.

name_dictionary = {}

Como obter o valor do dicionário pela chave

chevron-rightDescriçãohashtag

name[key] - obtendo um elemento do dicionário pela chave

chevron-rightExemploshashtag

Exemplo de trabalho com um dicionário:

Neste caso específico, estamos acessando o valor pela chave "a". Para recuperar um valor de um dicionário usando uma chave específica, use o seguinte formato: name_dictionary["key"]

Resposta:

chevron-rightExemplo de código para copiarhashtag

Como obter uma lista de chaves de um dicionário

chevron-rightDescriçãohashtag

dict_keys_to_array(data) - para obter uma lista das chaves do dicionário data

chevron-rightExemploshashtag

Exemplo: Obter uma lista de todas as chaves do dicionário

Resposta:

chevron-rightExemplo de código para copiarhashtag

Como obter uma lista de valores de um dicionário

chevron-rightDescriçãohashtag

dict_values_to_array(data) - para obter uma lista de valores de um dicionário

chevron-rightExemploshashtag

Exemplo:

Resposta:

chevron-rightExemplo de código para copiarhashtag

Como obter os valores da lista de dicionários pela chave especificada

chevron-rightDescriçãohashtag

get_values_by_key(data, key) - permite obter valores da lista de dicionários pela chave especificada. Retorna uma lista de valores.

chevron-rightExemplohashtag

Exemplo: obter valores de uma lista de dicionários pela chave

Resposta:

chevron-rightExemplo de código para copiarhashtag

Como substituir um valor em um dicionário

chevron-rightDescriçãohashtag

name['key'] = value - substituindo o valor do elemento do dicionário pela chave especificada. Se for especificada uma chave inexistente, um novo elemento do dicionário será adicionado.

chevron-rightDescriçãohashtag

Exemplo:

Para substituir o valor de um elemento específico do array, escreva uma atribuição como array_name[index] = value ou dictionary_name[key] = value

Resposta:

chevron-rightExemplo de código para copiarhashtag

Como adicionar um valor a um dicionário

chevron-rightDescriçãohashtag

dictionary_name['key'] = 'value' - adicionando um novo valor ao dicionário.

circle-exclamation
chevron-rightExemplohashtag

Este é um exemplo do código no campo da calculadora

Resposta

chevron-rightExemplo de código para copiarhashtag

Como verificar se uma chave existe em um dicionário

chevron-rightDescriçãohashtag

exist_key(mass, key) - para verificar se uma chave existe em um dicionário.

Parâmetros:

mass - dictionary

key - a chave a ser pesquisada

Retorna Verdadeiro ou Falso, dependendo de a chave ter sido encontrada.

chevron-rightExemplohashtag

Exemplo de uso:

chevron-rightExemplo de código para copiarhashtag

Como verificar a posição de uma chave em um dicionário

chevron-rightDescriçãohashtag

key_index(mass, key) - para verificar a posição de uma chave em um dicionário.

Parâmetros: mass - dicionário key - Chave a ser pesquisada.

circle-info

A posição em um dicionário é contada a partir de 0. Portanto, o primeiro elemento é 0, o segundo elemento é 1 e assim por diante.

chevron-rightExemplohashtag

Exemplo de uso:

Resultado:

chevron-rightExemplo de código para copiarhashtag

Como obter o número de elementos em um dicionário

chevron-rightDescriçãohashtag

arr_len(mass) - para determinar o comprimento de um dicionário.

Parâmetro: mass - dictionary

Resultado: retorna um número – o comprimento do dicionário.

circle-exclamation
chevron-rightExemplohashtag

Exemplo de uso:

Resposta:

Como excluir um elemento de um dicionário

chevron-rightDescriçãohashtag

Por índice ou chave

del(mass, key) - para excluir um elemento de uma lista por índice ou de um dicionário por chave. Recebe dois parâmetros: a lista/dicionário e o índice/chave a excluir. Retorna o dicionário ou lista modificados sem alterar o objeto original.

circle-exclamation
chevron-rightExemplohashtag

Exemplo com um dicionário

Resultado

Exemplo com um array

Resultado

chevron-rightExemplo de código para copiarhashtag

Exemplo com um dicionário

s={"1":123, "2":234, "q":{"w":"e"}}

q=del(s,'q')

Exemplo com um array

s=["John", "Ann", "Sophie"]

q=del(s, 1)

Como converter um dicionário em texto legível por humanos

chevron-rightDescriçãohashtag

humanize(dict, delimiter, from_i, to_i)

Parâmetros:

dict - nome do dicionário delimiter - delimitador entre linhas from_i - índice do elemento a partir do qual iniciar a saída (base 0) to_i - índice do elemento no qual encerrar a saída (não inclusivo)

chevron-rightExemplohashtag

Vamos ver o exemplo:

Resposta

chevron-rightExemplo de código para copiarhashtag

Para ordenar dicionários

sort() | sort_by_value()

chevron-rightDescriçãohashtag

Ordenação de dicionário

sort(dict, b) - Ordena uma lista por valor e um dicionário por chave

Parâmetros:

! dict- dicionário

b - direção da ordenação (False – crescente por padrão, True – decrescente)

Ordenação de dicionário por valor

sort_by_value(dict, b) - Ordenando um dicionário por valores.

Parâmetros:

! dict- dicionário

b - direção da ordenação (False – crescente por padrão, True – decrescente)

chevron-rightExemploshashtag

Exemplo: ordenando uma lista em ordem decrescente e um dicionário em ordem crescente:

Ordenando um dicionário pelos seus valores:

chevron-rightExemplo de código para copiarhashtag

Exemplo: ordenando uma lista em ordem decrescente e um dicionário em ordem crescente:

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)

Ordenando um dicionário pelos seus valores:

dict={"Ann":5, "John":4, "Sophie":0, "Alex":6, "Kate":3, "Harry":0}

dict=sort_by_value(dict)

Atualizado