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
Como substituir um valor em um array
Exemplo
Exemplo:
Para substituir o valor de um elemento específico do array, use a seguinte sintaxe: array_name[index] = value

Resposta:

Como verificar se um elemento está em um array
Descrição
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.
Como descobrir o tamanho do array
Descrição
arr_len(mass) - para descobrir o tamanho do array
Parâmetro: ! mass - array
Resultado: retorna um número - o tamanho do array.
Tenha cuidado ao passar parâmetros para a função! Se chamada sem parâmetros, retorna 0; se o parâmetro não for nem um array nem um dicionário, retorna -1.
Como inserir um elemento no final de um array?
Descrição
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)
Por padrão, os dados são inseridos como strings. Se você precisar inserir um array ou dicionário, passe um parâmetro adicional True. Isso indica que você está inserindo JSON.
Exemplo
Exemplo de uso:


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

p é removido do array project.pzdrExemplo de criação de um array com arrays dentro:

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

Como inserir um valor em uma posição específica de um array
Descrição
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)
Por padrão, os dados são inseridos como strings. Se você precisar inserir um array ou dicionário, passe um parâmetro adicional True. Isso indica que você está inserindo JSON..
Exemplo
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:

Como deletar um elemento do array
del() | del | remove()
Descrição
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)
Se o seu array contiver números e você quiser remover um elemento pelo valor, use a função remove().
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)
Exemplos
Exemplo de remoção de um elemento por índice:


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


Como obter a posição de um elemento em um array
Descrição
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.
Exemplos
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.
Como converter um array em texto legível para humanos
Descrição
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 é ‘)’ )
Como excluir um array de outro
Descrição
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
Como encontrar a interseção de arrays
Descrição
cross_arr(mas1, mas2)
Parâmetros:
! mas1 - o array no qual pesquisar ! mas2 - o array que contém os elementos a serem procurados
Como mesclar arrays
Descrição
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 ','
Como somar os elementos de um array
Descrição
sum_array(array)
Parâmetros:
array - o array cujos elementos precisam ser somados
Atenção! A função funciona com arrays de um formato específico.
Formatos aceitos: - [1,2,3,4] ou ‘[1,2,3,4]’. Se o array contiver números representados como strings, eles precisam estar entre aspas duplas — por exemplo, [1,2,3,”-4”]. Se o array contiver strings alfabéticas, o cálculo falhará.
Exemplo de uso incorreto: mas = [1,2,3,"a"] result = sum_array(mas)
Isso resultará em um erro: o array possui elementos não suportados
Como embaralhar os elementos de um array
Descrição
shuffle_massive(massive
Parâmetros:
massive - o array cujos elementos precisam ser embaralhados.
Para classificar arrays e dicionários
sort() | sort_by_value()
Descrição
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)
Exemplo
Exemplo de classificação de um array em ordem decrescente e de um dicionário em ordem crescente:


Classificando um dicionário pelos valores:


Convertendo um array/dicionário em botões
tools_make_button_str_checker() | tools_check_user_input()
Descrição
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
Exemplo
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().


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()

Seleção de dados de um array
Descrição
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)
Exemplo
Vamos selecionar um subarray a partir do 1º elemento:

res será ["Bermudas", "Meias", "Bonés"]
Outro exemplo de seleção de um subarray do 0º ao 2º elemento do array:

res será ["Camisetas", "Bermudas"]
Desempacotando elementos do array
Função
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.
Exemplo
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
Descrição
remove_duplicates(array) - retorna uma lista sem elementos duplicados.
! array - parâmetro obrigatório. A lista original de elementos com duplicatas.
Exemplo
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
Como limpar um dicionário
Como obter o valor do dicionário pela chave
Exemplos
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:

Como obter uma lista de chaves de um dicionário
Como obter uma lista de valores de um dicionário
Como obter os valores da lista de dicionários pela chave especificada
Descrição
get_values_by_key(data, key) - permite obter valores da lista de dicionários pela chave especificada. Retorna uma lista de valores.
Como substituir um valor em um dicionário
Descrição
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.
Descrição
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:

Como adicionar um valor a um dicionário
Descrição
dictionary_name['key'] = 'value' - adicionando um novo valor ao dicionário.
Se a chave não existia antes, um novo par chave–valor será adicionado; caso contrário, o valor da chave especificada será substituído.
Como verificar se uma chave existe em um dicionário
Descrição
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.
Como verificar a posição de uma chave em um dicionário
Descrição
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.
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.
Como obter o número de elementos em um dicionário
Descrição
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.
Будьте внимательны Ao passar um parâmetro para a função: se a função for chamada sem parâmetros, ela retorna 0; se o parâmetro não for uma lista ou um dicionário, ela retorna -1.
Como excluir um elemento de um dicionário
Descrição
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.
Se os valores em uma lista ou dicionário forem números, use a função remove() para excluir um elemento.
Exemplo de código para copiar
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
Descrição
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)
Para ordenar dicionários
sort() | sort_by_value()
Descrição
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)
Exemplos
Exemplo: ordenando uma lista em ordem decrescente e um dicionário em ordem crescente:


Ordenando um dicionário pelos seus valores:


Exemplo de código para copiar
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



































