"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Notas/truques/lições/nuances de Python

Notas/truques/lições/nuances de Python

Publicado em 01/11/2024
Navegar:443

Python notes/tricks/lessons/nuances

Fiz um post de truques em C e queria escrever sobre muito mais truques que conheço, já que a maioria deles está em Python e JS, embora eu tenha codificado em C a muito mais, mas de qualquer forma, aqui estão eles, começarei com coisas triviais sobre a sintaxe básica do Python, mas há algumas coisas que não são conhecidas pelos iniciantes, que marquei com uma estrela ⭐️:

1. Listas

  • Uma coleção ordenada de estrutura de dados de itens
  • Pode ter vários tipos
  • aa = ["maçã", 'd', 3, 9,3]

Inicialização:

  1. a = [1, 2]
  2. a = lista()
  3. a = lista([2, 3])
  4. [0]*5
  5. lista_concat = lista1 lista2

Acessando elementos ⭐️

  • 0...n-1 e -n...-1

Funções

  • len(lista1)
  • a.append(valor)
  • a.insert(index, value): insere valor no índice e empurra tudo para a direita
  • a.pop(): retorna o valor final e o remove
  • a.remove(value): se o valor não estiver presente você receberá um ValueError
  • a.clear()
  • a.reverse(): inverte no lugar
  • a.sort(): modifica o original
  • b = classificado(a): não modifica o original

Fatiando ⭐️

Uma maneira fácil de acessar submatrizes de uma lista

  • slicedList = a[1:5]: inicia no índice 1 e para no índice 5, o índice 5 é excluído
  • Lista fatiada = a[:3]: de 0 ... 2
  • lista fatiada = a[1:3]: de 1 a 2
  • slicedList = a[:]: duplica a lista inteira
  • slicedList = myList[::2]: índice do passo, cada segundo item, comece com o primeiro, basicamente i=0;i
  • slicedList = myList[::-1]: ótima maneira de reverter uma lista

Copiando uma lista

1. Cópia superficial

  • a = [1, 2, 3]
  • b = uma

Modificar um também modifica o outro, pois ambos são as mesmas alocações de memória

2. Cópia profunda ⭐️

3 maneiras:

  1. b = a.copy()
  2. b = lista(a)
  3. b = uma[:]

Compreensão de lista

Começarei com algumas compreensões básicas de lista, mas elas rapidamente se tornarão menos triviais.

  • valores = [x 1 para x no intervalo(10)] -> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

- valores = [x para x no intervalo (51) se x% 2 == 0]

values = [word for word in values if len(word) > 1 and word[0] == 'a' and word[-1] == 'y']
# OR, a nicer way is ⭐️
values = [
    string
    for string in values
    if len(string) > 1
    if string[0] == 'a'
    if string[-1] == 'y'
]

Compreensão de lista aninhada ⭐️

Achatar uma lista de listas ou uma matriz 2D
Compreensão de lista aninhada: achatando uma matriz (uma lista de listas) ⭐️

Exemplo: matriz = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

values = [
    number for row in matrix for number in row
]
# first for loop then the next for loop is inside the first and so on
  • Outras compreensões da lista:
values = [
    "Even" if x % 2 == 0 
    else "Odd" 
    for x in range(10)
]
  • Esta sintaxe ->
    "Mesmo" if x % 2 == 0 else "Odd" é válido em vários lugares em python, você também pode colocá-lo em variáveis, este é basicamente um operador ternário, mas mais detalhado

  • ⭐️ Para entender qualquer compreensão de lista sempre olhe à esquerda e à direita da expressão, quaisquer loops aninhados vão da esquerda para a direita, quando o if else está à esquerda do loop for verificamos qual valor queremos inserir dependendo da condição if else, enquanto quando o loop for está à direita, estamos tentando filtrar da lista

  • Por exemplo, para criar uma lista 5x5x5: ⭐️

values = [[[num 1 for num in range(5)] for _ in range(5)] for _ in range(5)]

⭐️ Procure o loop for mais externo, o que estiver à sua esquerda será adicionado ao array de valores[], e o significado desta sintaxe: for _ in range(5) é que eu quero fazer o que quer que esteja ligado à esquerda deste loop for 5 vezes (porque não me importo com o valor da variável iteradora em cada iteração)

  • Funções em compreensões:\ valores = [x**2 para x em valores se válido(x)]

Compreensão do dicionário

Se tivermos pares = [("a", 1), ("b", 2)]: uma lista de pares ou tuplas

-> my_dict = {k:v for k, v in pairs}: descompactação de valor, para que isso funcione, cada "par" em pares deve ter exatamente 2 entidades

Definir compreensão

Seja nums = [1, 2, 3, 1, 3, 2, 4, 2, 1, 3]

unique_nums = {x for x in nums}: python saberá que isso deve ser um conjunto porque você não tem nenhuma chave

Escreverei isso assim que tiver algum tempo, mas você ainda pode verificá-los aqui: AdvancedPythonConcepts, este é meu repositório git, onde documentei conceitos de python quando os aprendi pela primeira vez. Escreverei esta postagem com base neste repositório assim que tiver tempo...

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/yashdevs/python-tricks-5b0c?1 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3