Jump to content

Recommended Posts

Amigos, estou com uma dúvida em um código em Python que estou escrevendo. Parece ser simples mas é algo que não estou conseguindo entender.

A dúvida é a seguinte:

 

m=[[1,2,3],[4,5,6],[7,8,9]]

n=m

n[0]=m[2]
n[2]=m[0]

print(n)

 

A resposta que obtenho é [[7,8,9],[4,5,6],[7,8,9]] ao invés de [[7,8,9],[4,5,6],[1,2,3]] como esperava que fosse.

Alguém sabe por que?

Obrigado!

Share this post


Link to post
Share on other sites

Vinicius,

 

Esse problema ocorre pois as informações da variável m estão armazenadas em um endereço da memória do computador. Quando você faz n = m, é associado à variável n um endereço de memória diferente da variável m, porém elas compartilham de valores iguais. As listas [1,2,3],[4,5,6],[7,8,9] são compartilhadas pelas variáveis m e n.

 

Se você fizer qualquer alteração na lista da variável m, então a variável n também receberá essa alteração. Afinal os dados estão sendo compartilhado pelas duas variáveis.

 

No vídeo https://www.youtube.com/watch?v=4TN8IdsJ78k o professor Fabio Kon da USP explica com mais detalhes o que está acontecendo. Aqui também tem umas informações interessantes: https://pythonhelp.wordpress.com/2013/02/20/variaveis-valores-e-referencias/

 

Não pretendo colocar a solução aqui, agora. Vamos tentar descobrir como resolver isso com base nas informações passadas. =)

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By louisefgomes
      oii gente, é que surgiu várias dúvidas agora que eu quis iniciar desenho digital...  Então gostaria de saber qual programa vocês indicam, que tipo de notebook é melhor pra aguentar os programas e que mesa digital vocês indicam...
      para da uma ajudinha:
      01. eu queria programas que fossem recomendados para quem quer fazer quadrinhos, porém se existir um que se adeque tanto para quadrinhos quanto para desenhos realista ficaria feliz ( caso não exita pode indicar um programa bom para cada área ?)
      02. sobre as mesas eu ja vi que as melhores são da wacom queria saber qual dessas é melhor : 
            - Mesa Digitalizadora One by Wacom Pequena - CTL472L
            - Mesa Digitalizadora Wacom Intuos Pequena - CTL4100
      Agradeço desde já atenção de vocês !!!
          
    • By samuel.huarachi
      Tenho o seguinte problema

      Uma aplicacao web, que acessa a camera do celular do usuario, e coloca uma mascara  no rosto, tipo um óculos, chapeu, bigode etc

      Dei uma pesquisa e encontrei a biblioteca opencv, mas nao sei se ela funciona em aplicacao web, e se ela acessa a webcam do usuario.

      Se alguem puder me dar um norte eu agradeço
    • By dhebryhan
      #importar a biblioteca
      import pymysql
      #conexao com banco de dados
      conexao = pymysql.connect(
          host    = "localhost",
          user    = "root",
          passwd  = "123456",
          db      = "dbMegasena"
      )

      cursor = conexao.cursor()
      #gerando combinacoes dos numeros
      for dez1 in range(60):
          for dez2 in range(dez1+1,60):
              for dez3 in range(dez2+1,60):
                  for dez4 in range(dez3+1,60):
                      for dez5 in range(dez4+1,60):
                          for dez6 in range(dez5+1,60):
                             #total += 1
                              sql_data = (dez1 + 1, dez2 + 1, dez3 + 1, dez4 + 1, dez5 + 1, dez6 + 1)
                              sql = "INSERT INTO combinacoesMega (bola01, bola02, bola03, bola04, bola05, bola06) VALUES(?, ?, ?, ?, ?, ?)"
                              cursor.execute(sql, sql_data)
    • By michael450
      Senhores, boa tarde.
       
      Estou com um probleminha... rss', preciso fazer a listagem de uma função da biblioteca "SPED-NFe"   na qual consulto quais as NFe que emitiram contra meu CNPJ, porém o ele executa toda a função e depois me trás o resultado, eu gostaria de trazer o resultado instantaneamente, como se fosse uma atualização segundo a segundo.
       
       
      Essas informações não são salvas em DB, é apenas para consulta.
      Se alguém puder ajudar serei muito grato,
       
      Abraço.
       
      Michael Douglas
    • By hugogomess
      Olá, eu quero fazer um script com pillow que capture a imagem de uma janela específica mesmo que ele esteja sobreposta por outras ou seja redimensionada, quero que quando um pixel específico mudar de cor seja digitado uma sequencia de letras (farei essa parte de digitar com o pyautogui, não tenho dúvidas nessa parte) mas para saber se o pixel mudou de cor, o pillow precisa monitorar essa janela mesmo que ela seja redimensionada ou sobreposta/minimizada.
      Alguém sabe como posso fazer isso? Não tenho exemplo de código pois ainda não comecei o script.
      Outra coisa, alguém sabe como posso fazer com python de maneira geral ou outra lib para saber se um processo está ou não sendo executado?
      Sou novo no aqui então desculpa ae qualquer coisa que esteja errada.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.