Brincando com Listas

Criando uma lista de números em sequência:

# python 2:
lista = range(100)
# python 3:
lista = list(range(100))

Criando uma lista com list comprehensions:

lista = [x*2 for x in range(100)]

Percorrendo uma lista com for in:

for x in lista:
    # faça algo com x

Percorrendo uma lista, obtendo os valores e seus índices:

for indice, valor in enumerate(lista):
    print "lista[%d] = %d" % (indice, valor)

Percorrendo um pedaço de uma lista usando slicing:

for x in lista[40:60]:
    # faça algo com x

Percorrendo uma lista de trás pra frente definindo o passo do slicing como -1:

for x in lista[::-1]:
    # faça algo com x

Ou:

for x in reversed(lista):
    # faça algo com x

Percorrendo uma lista ordenada:

for x in sorted(lista):
    # faça algo com x

Acessando o último elemento de uma lista com o índice -1:

print lista[-1]

Copiando uma referência para uma lista:

>>> nova_ref = lista
>>> nova_ref is lista
True

Copiando de verdade uma lista:

>>> nova_lista = lista[:]
>>> nova_lista is lista
False

Ou, usando o módulo copy:

>>> import copy
>>> nova_lista = copy.copy(lista)
>>> nova_lista is lista
False

Ou caso lista contivesse listas aninhadas e quiséssemos fazer com que estas também fossem completamente copiadas, e não somente referenciadas, usaríamos a função deepcopy():

>>> nova_lista = copy.deepcopy(lista)
>>> nova_lista is lista
False

Embaralhando os elementos de uma lista (in-place):

>>> import random
>>> random.shuffle(lista)  # altera a própria lista

Obtendo uma amostra aleatória (de 10 elementos) de uma lista:

>>> print random.sample(lista, 10)
[729, 9025, 2401, 8100, 5776, 784, 1444, 484, 6241, 7396]

Obtendo um elemento aleatório de uma lista:

>>> random.choice(lista)
7744

Gerando uma lista com 10 números aleatórios, com valores entre 0 e 99:

>>> lista_aleatoria = random.sample(range(0, 100), 10)

Obtendo o maior elemento de uma lista:

>>> lista = range(0, 10)
>>> print max(lista)
9

O menor:

>>> print min(lista)
0

Pegando somente os elementos de índice par:

>>> print lista[::2]
[0, 2, 4, 6, 8]

Os de índice ímpar:

>>> print lista[1::2]
[1, 3, 5, 7, 9]

Somando todos os elementos de uma lista:

>>> print sum([1, 2, 3, 4])
10

Juntando duas listas, formando pares de elementos:

>>> lista = zip(range(0, 5), range(5, 10))
>>> print lista
[(0, 5), (1, 6), (2, 7), (3, 8), (4, 9)]

Separando os elementos de uma lista de forma intercalada:

>>> lista = range(0, 10)
>>> intercaladas = lista[::2], lista[1::2]
>>> print intercaladas
([0, 2, 4, 6, 8], [1, 3, 5, 7, 9])

Transformando uma lista de strings em uma string CSV:

>>> lista = ["ola", "mundo", "aqui", "estamos"]
>>> csv_values = ','.join(lista)
>>> print csv_values
ola,mundo,aqui,estamos

Aplicando uma função (neste caso, anônima) a todos elementos de uma lista:

>>> lista = range(1, 11)
>>> print map(lambda x: x*-1, lista)
[-1, -2, -3, -4, -5, -6, -7, -8, -9, -10]

Filtrando os elementos de uma lista de acordo com um critério:

>>> def criterio(x): return x >= 0
>>> print range(-5, 5)
[-5, -4, -3, -2, -1, 0, 1, 2, 3, 4]
>>> print filter(criterio, range(-5, 5))
[0, 1, 2, 3, 4]

Retirando os elementos cujo valor é zero (ou melhor, cujo valor é avaliado como False):

>>> print filter(None, range(-2, 2))
[-2, -1, 1]

E você, tem alguma dica que poderia ser inserida aqui no post? Poste sua sugestão nos comentários.

70 comentários sobre “Brincando com Listas

  1. Pingback: Como funcionam as listas de Python? | Python Help
  2. como fazer para passar um valor a uma lista aninhada exemplo:
    MATRIZ=[(0,0,0),(0,0,0),(0,0,0)]
    MATRIZ[1][1]=1

    nesta lista quero alterar o valor em uma posição da matriz. Como posso fazer? Pois dessa forma esta gerando o seguinte erro:
    TypeError: ‘tuple’ object does not support item assignment

    • Na estrutura referida, você não tem listas aninhadas dentro de outra lista, mas sim tuplas dentro de uma lista. O problema é que tuplas são objetos imutáveis.

      As tuplas literais são especificadas por conjuntos de valores separados por vírgulas e delimitados por parênteses. Já as listas são delimitadas por colchetes.

      Com listas aninhadas, seu código fica assim:

      MATRIZ=[[0,0,0], [0,0,0], [0,0,0]]
      MATRIZ[1][1] = 1

    • Veja se isso resolve:

      i = 0
      print “****************************************************”
      while i < len(host_id):
      j = 0
      while j < len(host_id[i]['hosts']):
      print "Group ID: ", host_id[i]['groupid']
      print "Group Name: ", host_id[i]['name']
      print "Hosts: ", host_id[i]['hosts'][j]['hostid']
      print "****************************************************"
      j = j + 1
      i = i + 1

  3. Olá pessoal estou começando com Python e estou com um problema, não consigo fazer com que apareça o que o usuário digitou na tela. Na verdade aparece porém aparece tbm a variavel x do for.

    nome = []
    valor = []
    for x in range(1 , 3):
    prod=input(“Cadastre os nome do produto: \n”)
    nome += [(x)],prod
    prec=float(input(“Cadastre os valor do produto: \n”))
    while prec < 0:
    prec = float(input("Valor inválido!\nCadastre os valor do produto: \n"))
    valor += [(x)],prec
    valor += [(x)],prec
    x = 0
    while x <= 3:
    print(nome[x])
    print(valor[x])
    x += 1

  4. Boa Tarde Valmir .

    TUDO BEM ?
    Gostei muito do seu conteúdo de python está de parabéns. Bom eu to com um probleminha em um sistema que estou desenvolvendo em python , já tentei de tudo mas não consigo resolver .

    Seguinte: eu tenho um formulário de cadastro de funcionários , e um dos campos é uma combobox que se chama login , os valores dessa combo vem do banco de dados de uma tabela login que tem relação com a tabela funcionário.

    bom resumindo eu estou fazendo isso como segue o código abaixo

    BANCO =”tcc teste”
    USER=”root”
    PASSWD=””
    HOST=”127.0.0.1″

    conexao = MySQLdb.connect(db=BANCO,user=USER,passwd=PASSWD,host=HOST)

    cursor = conexao.cursor()
    sql = “select login from usuarios where tipo_usuario like ‘empregada’ ”

    cursor.execute(sql)

    dadosFuncionario = cursor.fetchall()

    for dados in dadosFuncionario:
    lista.append(dados)

    #contator = len(lista)
    #print len(lista)

    Label(self.master,text=”Login:”).place(relx=0.5,x=-172,y=330,anchor=CENTER)

    self.comboLogin = ttk.Combobox(self.master)
    self.comboLogin[“values”] = lista
    self.comboLogin.current(0)
    self.comboLogin.place(relx=0.5,x=-100,y=330,anchor=CENTER,height=17,width=100)

    assa é uma parte do código .

    meu problema é o seguinte quando eu trago os dados para dentro da combo ele ficam da seguinte maneira

    Exemplo: [‘marcos’,],
    [‘alysson’,],
    [‘juca’,],

    os dados ficam desse jeito na combobox , eu estou tentando recomer as [], ” , , de maneira que fique apenas o nome do login na combobox sem esses caracteres .

    Será que você poderia me dar uma sugestão ?

    estou utilizando a biblioteca Tkinter

    agradeço por sua atenção grande abraço.

    • Willian! Acredito que o problema é que o método fetchall() retorna uma lista de resultados, que por sua vez são listas também, mesmo que de um elemento só.

      Assim, dadosFuncionario é [['marcos'], ['alysson'], ['juca']]. Então, quando você faz o seguinte, você adiciona listas de um elemento (o nome) à lista:

          for dados in dadosFuncionario:
              lista.append(dados)
      

      A solução é extrair esse elemento de dentro da lista interna:

          for dados in dadosFuncionario:
              if len(dados) > 0:
                  lista.append(dados[0])
      

      Ou, então, com list comprehensions:

          lista = [dados[0] for dados in dadosFuncionario if len(dados) > 0]
      

      Qualquer coisa, comente!

      Valdir.

  5. Boa Tarde Valdir .

    agradeço por sua atenção .

    eu tentei fazer o que você citou no comentário , porem aparece o seguinte erro na hora da execução .

    there’s an error in your program

    EOF while scanning triple-quoted string literal .

    se você souber o que significa e pude me ajudar .

    grande abraço

      • segue o código

        # coding: utf-8
        import MySQLdb
        from Tkinter import *
        from maskedentry import MaskedWidget
        import sys
        import tkMessageBox
        global dados
        import ttk
        #lista = [“willian”,”selma”,”jose”,”carlos”]
        lista =[]
        novofuncionario = True

        class CadastroFuncionario():

        def __init__(self,master):
        self.master = master
        self.master.title(“Cadastro de Funcionario”)
        self.master.geometry(“900×600″)

        Label(self.master,text=”Pesquisar:”).place(relx=0.5,x=-175,y=30,anchor=CENTER)
        self.PesquisaFuncionario = Entry(self.master,)
        self.PesquisaFuncionario.place(relx=0.5,x=-50,y=30,anchor=CENTER,height=17,width=200)

        Label(self.master,text=”Código:”).place(relx=0.5,x=-175,y=60,anchor=CENTER)
        self.CodigoFuncionario = Entry(self.master,state=”readonly”)
        self.CodigoFuncionario.place(relx=0.5,x=-140,y=60,anchor=CENTER,height=17,width=30)

        Label(self.master,text=”Nome:”).place(relx=0.5,x=-175,y=90,anchor=CENTER)
        self.NomeFuncionario = Entry(self.master,)
        self.NomeFuncionario.place(relx=0.5,x=-30,y=90,anchor=CENTER,height=17,width=250)

        Label(self.master,text=”Endereco:”).place(relx=0.5,x=-183,y=120,anchor=CENTER)
        self.EnderecoFuncionario = Entry(self.master)
        self.EnderecoFuncionario.place(relx=0.5,x=-43,y=120,anchor=CENTER,height=17,width=220)

        Label(self.master,text=”Bairro:”).place(relx=0.5,x=-175,y=150,anchor=CENTER)
        self.BairroFuncionario = Entry(self.master)
        self.BairroFuncionario.place(relx=0.5,x=-80,y=150,anchor=CENTER,height=17,width=150)

        Label(self.master,text=”Cidade:”).place(relx=0.5,x=20,y=150,anchor=CENTER)
        self.CidadeFuncionario = Entry(self.master)
        self.CidadeFuncionario.place(relx=0.5,x=112,y=150,anchor=CENTER,height=17,width=140)

        Label(self.master,text=”CEP:”).place(relx=0.5,x=43,y=180,anchor=CENTER)
        self.cep = Entry(self.master)
        #self.cep = MaskedWidget(self.master,’fixed’,mask=”99999 999″)
        self.cep.place(relx=0.5,x=100,y=180,anchor=CENTER,height=17,width=100)

        Label(self.master,text=”Estado:”).place(relx=0.5,x=-177,y=180,anchor=CENTER)

        self.comboEstado = ttk.Combobox(self.master)
        self.comboEstado[“values”] = ‘AC’,’AL’,’AP’,’AM’,’BA’,’CE’,’DF’,’ES’,’GO’,’MA’,’MT’,’MS’,’MG’,’PA’,’PB’,’PR’,’PE’,’PI’,’RJ’,’RN’,’RS’,’RO’,’RR’,’SC’,’SP’,’SE’,’TO’
        self.comboEstado.current(0)
        self.comboEstado.place(relx=0.5,x=-100,y=180,anchor=CENTER,height=17,width=100)

        “””
        self.var_estado = StringVar(self.master)
        self.var_estado.set(‘AC’)
        self.estado = OptionMenu(self.master,self.var_estado,’AC’,’AL’,’AP’,’AM’,’BA’,’CE’,’DF’,’ES’,’GO’,’MA’,’MT’,’MS’,’MG’,’PA’,’PB’,’PR’,’PE’,’PI’,’RJ’,’RN’,’RS’,’RO’,’RR’,’SC’,’SP’,’SE’,’TO’)
        #self.EstadoFuncionario = Entry(self.master)
        self.estado.config(width=15)
        self.estado.place(relx=0.5,x=-100,y=150,anchor=CENTER,height=17,width=100)

        #self.EstadoFuncionario.place(relx=0.5,x=-65,y=120,anchor=CENTER,height=17,width=180)
        “””
        Label(self.master,text=”Salario:”).place(relx=0.5,x=-177,y=210,anchor=CENTER)
        self.salario = Entry(self.master)
        self.salario.place(relx=0.5,x=-96,y=210,anchor=CENTER,height=17,width=120)

        Label(self.master,text=”Telefone Residencial:”).place(relx=0.5,x=-142,y=240,anchor=CENTER)
        self.TelefoneResidencial = Entry(self.master)
        #self.TelefoneResidencial = MaskedWidget(self.master,’fixed’,mask=”99 99999 9999″)
        self.TelefoneResidencial.place(relx=0.5,x=-35,y=240,anchor=CENTER,height=17,width=100)

        Label(self.master,text=”Telefone Celular:”).place(relx=0.5,x=-152,y=270,anchor=CENTER)
        self.TelefoneCelular = Entry(self.master)
        #self.TelefoneCelular = MaskedWidget(self.master,’fixed’,mask=”99 99999 9999″)
        self.TelefoneCelular.place(relx=0.5,x=-40,y=270,anchor=CENTER,height=17,width=100)

        Label(self.master,text=”Email:”).place(relx=0.5,x=-172,y=300,anchor=CENTER)
        self.EmailFuncionario = Entry(self.master)
        self.EmailFuncionario.place(relx=0.5,x=-43,y=300,anchor=CENTER,height=17,width=220)

        BANCO =”tcc teste”
        USER=”root”
        PASSWD=””
        HOST=”127.0.0.1″

        conexao = MySQLdb.connect(db=BANCO,user=USER,passwd=PASSWD,host=HOST)

        cursor = conexao.cursor()
        sql = “select login from usuarios where tipo_usuario like ‘empregada’ ”

        cursor.execute(sql)

        dadosFuncionario = cursor.fetchall()

        for dados in dadosFuncionario:
        lista.append(dados)

        #contator = len(lista)
        #print len(lista)

        Label(self.master,text=”Login:”).place(relx=0.5,x=-172,y=330,anchor=CENTER)

        self.comboLogin = ttk.Combobox(self.master)
        self.comboLogin[“values”] = lista
        self.comboLogin.current(0)
        self.comboLogin.place(relx=0.5,x=-100,y=330,anchor=CENTER,height=17,width=100)

        “””
        self.var_us = StringVar(self.master)
        self.var_us.set(”)
        self.nivelus = OptionMenu(self.master, ‘teste’,’teste’)

        self.nivelus.config(width=15)
        self.nivelus.place(relx=0.5,x=-100,y=300,anchor=CENTER,height=17,width=100)
        “””

        self.FuncionarioNovo = Button(self.master,width=10, text=”Novo”,command=self.novo)
        self.FuncionarioNovo.place(relx=0.5,x=-150,y=370,anchor=CENTER,height=25,width=90)

        #self.BotaoPesquisa = Button(self.master,width=10, text=”Pesquisar”)
        #self.BotaoPesquisa.grid(row=1,column=3)

        self.GravarFuncionario = Button(self.master,width=10, text=”Gravar”,command=self.CadastroFuncionario)
        self.GravarFuncionario.place(relx=0.5,x=-60,y=370,anchor=CENTER,height=25,width=90)

        self.FuncionarioAlterar = Button(self.master,width=10, text=”Alterar”, command=self.alterar)
        self.FuncionarioAlterar.place(relx=0.5,x=30,y=370,anchor=CENTER,height=25,width=90)

        self.FuncionarioExcluir = Button(self.master,width=10, text=”Excluir”, command=self.excluir)
        self.FuncionarioExcluir.place(relx=0.5,x=120,y=370,anchor=CENTER,height=25,width=90)

        self.FuncionarioCancelar = Button(self.master,width=10, text=”Cancelar”,command=self.cancelar)
        self.FuncionarioCancelar.place(relx=0.5,x=210,y=370,anchor=CENTER,height=25,width=90)

        self.PesquisarFuncionario = Button(self.master,width=10, text=”Pesquisar”, command=self.pesquisar)
        self.PesquisarFuncionario.place(relx=0.5,x=100,y=30,anchor=CENTER,height=25,width=90)

        def habilitarcampos(self):
        self.NomeFuncionario.configure(state=”normal”)
        self.EnderecoFuncionario.configure(state=”normal”)
        self.BairroFuncionario.configure(state=”normal”)
        self.CidadeFuncionario.configure(state=”normal”)
        self.cep.configure(state=”normal”)
        self.salario.configure(state=”normal”)
        self.TelefoneResidencial.configure(state=”normal”)
        self.TelefoneCelular.configure(state=”normal”)
        self.EmailFuncionario.configure(state=”normal”)

        def limpacampos(self):
        #editcodigo.configure(state=”normal”) # Habilita o campo codigo se precisa
        self.CodigoFuncionario.configure(state=”normal”)
        self.CodigoFuncionario.delete(0,END)

        self.NomeFuncionario.delete(0,END)
        self.EnderecoFuncionario.delete(0,END)
        self.BairroFuncionario.delete(0,END)
        self.CidadeFuncionario.delete(0,END)
        self.cep.delete(0,END)
        self.salario.delete(0,END)
        self.TelefoneResidencial.delete(0,END)
        self.TelefoneCelular.delete(0,END)
        self.EmailFuncionario.delete(0,END)
        self.NomeFuncionario.focus()

        def novo(self):
        self.habilitarcampos()
        self.limpacampos()
        self.CodigoFuncionario.configure(state=”readonly”)
        self.FuncionarioExcluir.configure(state=”disabled”)
        self.FuncionarioAlterar.configure(state=”disabled”)
        self.FuncionarioCancelar.configure(state=”normal”)
        self.GravarFuncionario.configure(state=”normal”)
        self.comboLogin.configure(state=”normal”)
        self.comboEstado.configure(state=”normal”)
        #self.StatusResposta[‘text’]=” ”
        #self.StatusResposta[‘text’]=”Inserindo Novo Registro”

        def desabilitarcampos(self):
        #editcodigo.configure(state=”readonly”)
        self.CodigoFuncionario.configure(state=”readonly”)
        self.NomeFuncionario.configure(state=”readonly”)
        self.EnderecoFuncionario.configure(state=”readonly”)
        self.BairroFuncionario.configure(state=”readonly”)
        self.CidadeFuncionario.configure(state=”readonly”)
        self.cep.configure(state=”readonly”)
        self.salario.configure(state=”readonly”)
        self.TelefoneResidencial.configure(state=”readonly”)
        self.TelefoneCelular.configure(state=”readonly”)
        self.EmailFuncionario.configure(state=”readonly”)
        self.comboEstado.configure(state=”disabled”)
        self.comboLogin.configure(state=”disabled”)

        def cancelar(self):
        self.desabilitarcampos()
        self.FuncionarioExcluir.configure(state=”disabled”)
        self.FuncionarioAlterar.configure(state=”disabled”)
        self.FuncionarioNovo.configure(state=”normal”)
        self.GravarFuncionario.configure(state=”disabled”)

        self.FuncionarioCancelar.configure(state=”disabled”)

        def CadastroFuncionario(self):

        conexao = self.ConexaoBanco()

        codigo=self.CodigoFuncionario.get()
        nome=self.NomeFuncionario.get()
        endereco=self.EnderecoFuncionario.get()
        bairro=self.BairroFuncionario.get()
        cidade=self.CidadeFuncionario.get()
        cep=self.cep.get()
        estado=self.comboEstado.get()
        salario=self.salario.get()
        telefonecasa=self.TelefoneResidencial.get()
        celular=self.TelefoneCelular.get()
        email=self.EmailFuncionario.get()
        login=self.comboLogin.get()

        cursor = conexao.cursor()
        “””
        cursor = conexao.cursor()

        sql = “select * from funcionarios where nome like ‘”+nome+”‘”
        cursor.execute(sql)
        valido = cursor.fetchall()

        if len(valido)>0:
        tkMessageBox.showinfo(“Alerta”, “Empregado já cadastrado”)
        “””
        if self.NomeFuncionario.get() == “”:
        tkMessageBox.showinfo(“Alerta”, “Preencha o Campo nome”)

        elif self.EnderecoFuncionario.get() == “”:
        tkMessageBox.showinfo(“Alerta”, “Preencha o Campo Endereco”)

        elif self.BairroFuncionario.get() == “”:
        tkMessageBox.showinfo(“Alerta”, “Preencha o Campo Bairro”)

        elif self.CidadeFuncionario.get() == “”:
        tkMessageBox.showinfo(“Alerta”, “Preencha o Campo Cidade”)

        elif self.cep.get() == “”:
        tkMessageBox.showinfo(“Alerta”, “Preencha o Campo CEP”)

        elif self.salario.get() == “”:
        tkMessageBox.showinfo(“Alerta”, “Preencha o Campo Salario”)

        elif self.TelefoneResidencial.get()== “” and self.TelefoneCelular.get() == “”:
        tkMessageBox.showinfo(“Alerta”, “É necessário fornecer pelo menos 1 número de telefone”)

        elif novofuncionario:
        sql = “insert into funcionarios (nome,endereco,cep,salario,email,estado,cidade,bairro,telefone_residencial,telefone_celular,login_usuario) values (‘”+nome+”‘,'”+endereco+”‘,'”+cep+”‘,'”+salario+”‘,'”+email+”‘,'”+estado+”‘,'”+cidade+”‘,'”+bairro+”‘,'”+telefonecasa+”‘,'”+celular+”‘,'”+login+”‘)”

        else:

        sql = “update funcionarios set nome = ‘”+self.NomeFuncionario.get()+”‘,endereco = ‘”+self.EnderecoFuncionario.get()+”‘,cep = ‘”+self.cep.get()+”‘,salario = ‘”+self.salario.get()+”‘,email = ‘”+self.EmailFuncionario.get()+”‘,cidade = ‘”+self.CidadeFuncionario.get()+”‘,bairro = ‘”+self.BairroFuncionario.get()+”‘,telefone_residencial = ‘”+self.TelefoneResidencial.get()+”‘,telefone_celular = ‘”+self.TelefoneCelular.get()+”‘ where id_funcionario = “+codigo

        try:
        cursor.execute(sql)
        conexao.commit()
        tkMessageBox.showinfo(“Alerta”, nome + “Cadastrodo Com sucesso”)
        except MySQLdb as erro:
        print(“Não COnsegui gravar os arquivos no banco de dados”, erro)

        self.FuncionarioExcluir.configure(state=”normal”)
        self.FuncionarioAlterar.configure(state=”normal”)
        self.FuncionarioNovo.configure(state=”normal”)
        self.GravarFuncionario.configure(state=”disabled”)
        self.FuncionarioCancelar.configure(state=”disabled”)

        self.desabilitarcampos()
        conexao.close()

        def alterar(self):
        self.habilitarcampos()
        self.FuncionarioExcluir.configure(state=”disabled”)
        self.FuncionarioAlterar.configure(state=”disabled”)
        self.FuncionarioNovo.configure(state=”disabled”)
        self.GravarFuncionario.configure(state=”normal”)
        self.FuncionarioCancelar.configure(state=”normal”)
        self.comboEstado.configure(state=”disabled”)

        global novofuncionario
        novofuncionario = False

        def pesquisar(self):
        self.FuncionarioExcluir.configure(state=”normal”)
        self.FuncionarioAlterar.configure(state=”normal”)
        conexao = self.ConexaoBanco()
        cursor = conexao.cursor()

        if self.PesquisaFuncionario.get() == “”:
        tkMessageBox.showinfo(“Alerta”, “Digite um Funcionario a ser pesquisado”)

        sql = “select * from funcionarios where nome like ‘”+self.PesquisaFuncionario.get()+”%'”

        try:
        cursor.execute(sql)
        dadosFuncionario = cursor.fetchone()
        self.limpacampos()

        if dadosFuncionario:
        #print(dadosPessoa[0])
        self.CodigoFuncionario.insert(0,dadosFuncionario[0])
        self.CodigoFuncionario.configure(state=”readonly”)
        #self.comboLogin.configure(state=”disabled”)
        self.comboEstado.configure(state=”disabled”)
        self.NomeFuncionario.insert(0,dadosFuncionario[1])
        self.EnderecoFuncionario.insert(0,dadosFuncionario[2])
        self.cep.insert(0,dadosFuncionario[3])
        self.salario.insert(0,dadosFuncionario[4])
        self.EmailFuncionario.insert(0,dadosFuncionario[5])
        #self.comboEstado.insert(0,dadosFuncionario[5])
        self.CidadeFuncionario.insert(0,dadosFuncionario[7])
        self.BairroFuncionario.insert(0,dadosFuncionario[8])
        self.TelefoneResidencial.insert(0,dadosFuncionario[9])
        self.TelefoneCelular.insert(0,dadosFuncionario[10])
        self.comboLogin.insert(0,dadosFuncionario[11])

        else:
        tkMessageBox.showinfo(“Alerta”, “Funcionario Não cadastrado”)

        except MySQLdb as erro:
        print(“Não conseguiu listar “,erro)

        conexao.close()

        def excluir(self):
        conexao = self.ConexaoBanco()
        #codigo= int (raw_input(“Codigo”))
        ExcluirFuncionario = self.PesquisaFuncionario.get()
        codigofuncionario = self.CodigoFuncionario.get()
        cursor = conexao.cursor()
        sql = “delete from funcionarios where id_funcionario = “+codigofuncionario
        try:
        cursor.execute(sql)
        conexao.commit()
        tkMessageBox.showinfo(“Alerta”, “Dados Excluidos Com sucesso”)
        #print(“Dados Excluidos com sucesso”)

        except MySQLdb as erro:
        tkMessageBox.showerro(“Alerta”, “Não Foi Possivel Excluir os Dados”)
        #print(“Não COnsegui Excluir os arquivos no banco de dados”, erro)
        self.limpacampos()

        conexao.close()

        def ConexaoBanco(self):
        BANCO =”tcc teste”
        USER=”root”
        PASSWD=””
        HOST=”127.0.0.1″
        try:
        conexao = MySQLdb.connect(db=BANCO,user=USER,passwd=PASSWD,host=HOST)

        except:
        print(“Conexão com o banco de dados falhou”)

        return conexao

        def pesquisarLogin(self):
        conexao = self.ConexaoBanco()
        cursor = conexao.cursor()
        sql = “select login from usuarios ”

        #if self.EditUsuario.get() == “”:
        # tkMessageBox.showinfo(“Alerta”, “Digite um Usuario A ser Pesquisado”)
        try:
        cursor.execute(sql)

        dadosFuncionario = cursor.fetchall()

        for dados in dadosFuncionario:
        self.listalogin[“values”] = dados

        except MySQLdb as erro:
        print(“Não Consegui Listar:”,erro)

        conexao.close()
        print self.listalogin

        def TelaCadastroFuncionario():
        root=Tk()

        CadastroFuncionario(root)
        root.mainloop()

    • Pela mensagem de erro que você está obtendo, o problema está em alguma das strings multi-linhas que você tem no seu código (pelo que vi, você fez isso para ‘comentar’ o código).

      """
      string com
      múltiplas linhas
      definida por aspas triplas.
      """
      

      Experimente tirá-las do código.

      • Agora Funcionou 🙂 , realmente era o que você falou Valdir , ele estava reclamando das aspas do comentário , depois de retirar funcionou certinho , agora quando eu carrego os dados na combo não aparece mais aquele lixo .

        Muito obrigado pela ajuda , você não sabe o quanto me ajudou .

        Grande Abraço

    • Que bom que funcionou! Só tome cuidado para não se confundir, pois aspas triplas não delimitam comentários, mas sim strings de múltiplas linhas. O efeito, entretanto, é **parecido**, pois aquele trecho de código não será executado pelo interpretador, embora seja criado um objeto string com aquele conteúdo em memória. Assim, é preferível comentar com # na frente de cada linha.

      • realmente eu não sabia disso , agora irei comentar sempre utilizando # .

        Desculpa o incomodo aproveitando o assunto , agora eu tente fazer o mesmo processo , porem trazendo dados do tipo int do banco de dados .

        e eles apareceram da seguinte maneira dentro da combo box

        Exemplo:

        [,1L
        ,2L]
        [,4L
        ,7L]

  6. ola caro amigo,estou começando no py….primeiramente queria fazer algo assim
    forneço algum caractrs ex:ABC ele cria “CBA,ACB,ABC,BCC,CCA…..ASSIM VAI INDO ATE TERMINAR”
    se voce puder me fornecer o codigo muito obrigado pois ta difficil fazer aqui 🙂

  7. Boa noite! ^^
    Eu tenho uma dúvida.. Eu crio duas listas, e então somo as duas listas, criando uma terceira com os itens das duas anteriores.. Se as listas anteriores possuírem itens iguais, como faço para que esse item não se repita na terceira? Por exemplo:
    a = [1, 2, 3, 10]
    b = [5, 4, 3, 9]
    c = a + b
    c = [1, 2, 3, 10, 5, 4, 3, 9]

    Como eu faço para que o 3 não se repita?

      • Muito obrigado! ^^ Mas esqueci de um detalhe: não posso utilizar a função set pois ainda não vi este termo nas aulas, provavelmente é assunto lá pra frente. Além disso, esse exercício faz parte do assunto de Laços (while), e provavelmente preciso utalizar laços para resolver. Basicamente, o programa deve receber um número n, e imprimir a soma de todos os números menores que n que sejam múltiplos de 3 e de 5. Só que 3 e 5 possuem alguns múltiplos em comum, e a soma não deve contá-los mais de uma vez ^^ Estou tentando sem utilizar laços, mas se puderem ajudar utilizando laços, seria interessante ^^

    • Bom dia, Guilherme.
      Veja como eu faria:

      a = [1, 2, 3, 10]
      b = [5, 4, 3, 9]
      c = a + b
      list.sort(c) #AQUI ORDENO A LISTA
      print(c)

      for i in range(len(c)):

      if i>>
      [1, 2, 3, 3, 4, 5, 9, 10]
      3
      [1, 2, 3, 4, 5, 9, 10]
      >>>

  8. Pingback: Dicas para trabalhar com listas no Python - Cafeína Codificada
  9. Pingback: Dicas para trabalhar com listas - Cafeína Codificada
  10. Como criar DIRETAMENTE um array a partir de outro – sabendo os índices que devem ser selecionados? Por exemplo: criar um novo array a partir dos elementos de indíce 0 e 2 do vetor x abaixo – esta sintaxe eu vi num site, mas não está funcionando:
    x= [“a”, “b”, “c”, “d”]
    interador = iter([0,2])
    novo_x = x[interador]

  11. Preciso que meu codigo mostre o conteúdo de cada matriz com tabulação que respeite a quantidade de caracteres do maior valor, sem vírgulas e sem colchetes. Cada matriz deve ser mostrada via chamadas independentes de um mesmo subprograma que receba como parâmetro apenas a matriz em questão. Poderia me ajudar??

    import random
    matriz1 = []
    n = int(input(“Informe a quantidade de filas\n da matriz 1:” ))
    m = int(input(“Informe a quantidade de colunas\n da matriz 1:” ))

    for i in range(n):
    matriz1.append([])
    for j in range(m):
    matriz1[i].append(random.randint(0,100))

    for i in range(len(matriz1)):
    print(matriz1[i])

    matriz2 = []
    n = int(input(“Informe a quantidade de filas\n da matriz 2:” ))
    m = int(input(“Informe a quantidade de colunas\n da matriz 2:” ))

    for i in range(n):
    matriz2.append([])
    for j in range(m):
    matriz2[i].append(random.randint(0,100))

    for i in range(len(matriz2)):
    print(matriz2[i])

  12. Amigo, sei que o tópico é antigo, mas tenho uma dúvida… quero pedir ao usuário para dizer qual o tamanho da lista…e a partir do tamanho q ele inseriu, por exemplo 5, pedir que ele insira 5 números para preencher a lista. Como pedir para ele inserir e atribuir isso a uma variável eu consigo…o problema é como criar essa lista a partir do tamanho que ele inseriu…alguma sugestão?

  13. Amigo, poderiam dar uma ajuda, eu preciso colocar uma matriz T de ordem 3×3 como elemento na diagonal principal de uma matriz de ordem [2], porem nao consigo fazer isso, poderiam ajudar? Agradeco

  14. Pessoal, boa tarde.
    Gostaria de saber como subtrair uma lista de outra, mas sem usar slice. Exemplo:
    lista1 = [“B”,”K”,”J”,”D”,”U”,”N”,”K”]
    lista2 = [“U”,”N”,”K”]
    e como resultado ter: listaFinal = [“B”,”K”,”J”,”D”]
    Tentei converter para conjunto, mas altera a ordem dos elementos.
    Obrigado.

  15. Olá!
    Gostaria que você me respondesse como eu posso usar o primeiro elemento de uma lista como índice de outra lista. Por exemplo:

    verifica_sequencia = []

    for i in range(linhas):
    if fileReadSplitted[i].startswith(“E3”): #Aqui eu estou falando de linhas de um arquivo de texto
    verifica_sequencia.append(i+1) #Quero que o número da linha que começa com E3 seja armazenado em uma lista e isso é
    #feito com sucesso

    if len(verifica_sequencia) == 1: #Só pode haver uma única linha que comece com E3
    if fileReadSplitted(verifica_sequencia[0]) != 84:
    print(“Blá, blá blá…”)

    Onde verifica_sequencia[0] == 23, mas ainda assim dá o seguinte erro:

    File “file.py”, line 235, in e3func
    ###########################
    if fileReadSplitted(verifica_sequencia[0]) != 84:
    TypeError: ‘list’ object is not callable

    Como resolver isso?

  16. Olá, alguém poderia me ajudar com esse problema?

    1) Faça um programa que salve o nome e a média de cada aluno em uma lista. Deve ser possível cadastrar vários alunos e suas respectivas médias na lista.
    Ao final do programa, crie outra repetição para localizar a media de alunos na lista, até que não deseje mais (crie outro while só para isso).

    Obrigada!

  17. Gostaria que alguém me tirasse essa dúvida.
    Não consigo fazer esse programa!! É em Python :/

    Leia dois n´umeros X e Y. Depois leia X n´umeros e coloque em uma lista e
    fac¸a o mesmo com o Y. Ao final, intercale os elementos da lista X e da lista
    Y numa terceira lista e a imprima na tela.

  18. Poderia adicionar ao tópico um jeito de percorrer uma lista de n em n ítens, manipulando as sublistas formadas por esses itens. Por exemplo, lista = [a,b,c,d]. Percorra de dois em dois itens e obtenha a multiplicação entre eles. lista2 = [[a,b],[b,c],[c,d]] e a multiplicação de cada sublista é ab, bc, cd.

  19. Pingback: Como achar a posição de um item numa lista? - python algoritmo lista - Perguntas e Respostas
  20. me ajudem a responder essa questão por favoooorr!!!
    *Faça um programa que calcule e mostre a média das Notas 1 , entre todos os
    estudantes.
    alunos = [[“Nome”,”Idade”,”Bairro”,”Nota1″,”Nota2″],
    [“ADRIANNE”,29,”Jurunas”,7,7],
    [“BRENO”,20,”Jurunas”,8,6],
    [“BRUNO”,24,”Jurunas”,8,6],
    [“BRUNA”,23,”Umarizal”,5,5],
    [“CAROLINE”,29,”Pratinha”,6,6],
    [“ELIZABETH”,25,”Jurunas”,10,10],
    [“ELIZ”,30,”Umarizal”,9,9],
    [“GLAUBER”,20,”Pratinha”,6,5],
    [“JULIO”,30,”Jurunas”,9,9],
    [“KATIA”,26,”Umarizal”,7,9],
    [“LEONARDO”,28,”Umarizal”,8,7],
    [“LUCAS”,22,”Pratinha”,10,8],
    [“MARCELO”,20,”Jurunas”,8,8],
    [“MARCOS”,27,”Umarizal”,10,9],
    [“MATHEUS”,20,”Jurunas”,9,8],
    [“MAYKON”,24,”Umarizal”,7,10],
    [“NILIANE”,22,”Jurunas”,6,5],
    [“ROSIELLY”,24,”Umarizal”,7,7],
    [“WENDEU”,19,”Pratinha”,8,5],
    [“PEDRO”,26,”Pratinha”,8,6]]

  21. Alguém poderia me ajudar?? To começando com Python e to meio perdida ..
    Faça um programa que percorre uma lista e exiba na tela o valor mais próximo da
    média dos valores da lista.
    Exemplo:
    lista = [2.5, 7.5, 10.0, 4.0] (média = 6.0)
    Valor mais próximo da média = 7.5

  22. Faça uma função que receba uma lista de números armazenados de forma crescente,
    e dois valores (limite inferior e limite superior), e exiba a sublista cujos elementos são
    maiores ou iguais ao limite inferior e menores ou iguais ao limite superior.
    Exemplo: lista inicial=[12,14,15,16,18,20,24,26,28,32,34,38]
    limite inferior=13
    limite superior = 26
    lista exibida: [14,15,16,18,20,24,26]

  23. Duas amigas estabeleceram o código abaixo para que suas mensagens não fossem
    lidas pelas demais pessoas.
    0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
    “ “ a b c d e f g h i j k l m n o p q r s t u v w x y z
    Observe que cada letra equivale a um número entre 1 e 26 e o espaço ao 0. Faça a
    função “traduzir”, que recebe uma lista com uma mensagem (lSecreta) e “traduz” a
    sequência armazenada em lSecreta de acordo com o código das amigas.
    Teste para lSecreta = [2,15,13,0,4,9,1];

  24. como eu insiro uma frase e ela vira uma lista, e dai comparo valores dessa lista com uma lista já criada. exemplo se eu digitei maça e na lista frutas tem maça, como eu faço essa busca?

  25. Faça uma programa que dada a entrada de uma lista ele faça o cálculo
    acumulativo da mesma:
    Exemplo de entrada: [1, 2, 3, 4]
    Exemplo de saída: [1, 3, 6, 10]

    Não consigo somar um elemento de uma lista com o elemento anterior. Como posso fazer nessa questão?

  26. Pingback: How do I find the position of an item in a list?

Deixar mensagem para Programação de Internet I Cancelar resposta