[Python] Como fazer print de posições especificas do array

20 respostas
arraylistarray
Ruben_Ribeiro

Galera to precisando de uma ajuda aqui…

Tenho esse código aqui:

p = Pessoa(id,nome,numero,idade,altura,peso)
pessoas.append§
p = Pessoa(id,nome,numero,idade,altura,peso)
pessoas.append§
Ele está 2 vezes repetidas. e o array está assim:

pessoas(“1”, “Nome”, “Numero”, “idade” , “altura”, “peso”, “2”, “Nome”, “Numero”, “idade” , “altura”, “peso”)

O que eu queria agora era saber como posso aceder apenas aos ID’s por exemplo ao ID 1 e ao ID2 e dar print apenas aos IDS.

O output teria de ficar assim:

print("Ids: ",iddaspessoas)
Ids: 1,2

Não sei se fui claro mas agradeço a ajuda de todos, obrigado.

20 Respostas

Villagram

Bom dia amigo

Não entendi muito bem sua explicação mas o código abaixo trás exatamente esse resultado:

class Pessoa:

        id, nome, numero, idade, altura = 0, "", 0, 0, 0

    def __init__(self, id, nome, numero, idade, altura):
       self.id = id
       self.nome = nome
       self.numero = numero
       self.idade = idade
       self.altura = altura

def arrayTest():

   p1 = Pessoa(1, "Daniel", 1, 20, 1.9)
   p2 = Pessoa(2, "Isabela", 2, 45, 1.65)
   pessoas = [p1, p2]
   separador = ","
   ids = []
   for p in pessoas:
       ids.append(str(p.id))

   print("Ids: {}".format(separador.join(ids)))

arrayTest()

Espero que te ajude em algo. :smiley:

Ruben_Ribeiro

Bom dia amigo, eu não preciso de adicionar, elas já estão adicionadas, o meu problema é esse:

Eu tenho o array das pessoas assim:

Array: [1,Ruben, 928482334,16,1.75,64,2,Mara,928394814,17,1.56,65]

A primeira pessoa é o ID 1 que tá ali mostrando, e o ID 2 é a MAra que tá a seguir ao 64.

Eu só gostaria de saber como posso obter esses dois IDS.

tipo assim:

ArrayIds: [1,2]

Obrigado, aguardo resposta!

Villagram

Bom dia amigo

A resposta anterior devolve exatamente o que você pediu, porém usando objetos Pessoa o que simplifica muito o trabalho, mas com arrays assim como apresentado, sem usar objetos, você precisa sempre ter todos os valores ou então não vai funcionar.

array = [1,"Ruben", 928482334,16,1.75,64,2,"Mara",928394814,17,1.56,65]
separador = ","
ids = []

for x in range(0 , len(array), 7):
     ids.append(x)

print("Ids: ", separador.join(ids))

Espero que ajude. :smiley:

Ruben_Ribeiro

Obrigado pela resposta rápida… tô executando mas não está dando…
tenho o código assim
image

Villagram

Você não declarou o separador e nem o array para guardar os ids.

def obterid(pessoas):
       ids = []
       separador = ","
       for x in range(0, len(pessoas), 7):
            ids.append(x)
       print("Ids: ", separador.join(ids))
Ruben_Ribeiro

Eu não preciso decalaram um array nem preciso declarar o separador, eu já tenho um código que serve pra adicionar pessoas ele tá funcionando assim:

image

Só preciso mesmo de saber como posso obter só o id… Ele tá guardando tudo no array “pessoas” como pode verificar ali no “pessoas.append§”

Villagram

se você não declarar a variável temporária dentro do método, não vai funcionar, coloquei o método na resposta anterior. O python não vê nada fora do método se você não passar na chamada.

Ruben_Ribeiro

image

Coloquei assim e mesmo assim não funciona

Ruben_Ribeiro

Fica repetindo o meu menu

Ruben_Ribeiro

image

Ruben_Ribeiro

Sério obrigado por estar me ajudando, estou com muita dificuldade nesse processo :confused: não sei o que fazer

Villagram

Então você está usando objetos, do jeito que passei na primeira resposta.

def obterids(pessoas):
      separador = ","
      ids = []
      for p in pessoas:
         ids.append(str(p.id))

print("Ids: {}".format(separador.join(ids)))
Ruben_Ribeiro

caralho mano, valeu velho então deixa eu ver se entendi, ele tá guardando os ids dentro do array ids certo?

Ruben_Ribeiro

já funcionou aqui, só quero saber uma coisa eu tenho nesse momento um array que é o array pessoas e gostava de saber se dá pra fazr isto que estamos fazendo mas no array pessoas

Ruben_Ribeiro

seria possível?

Villagram

mas você está fazendo isso no array de pessoas usando o método, se você setar os ids no mesmo array, vai dar errado. Caso você queria guardar os valores de id para uso posterior, basta declarar uma variável global, fora do método.

ids = []

def obterids(pessoas):
      separador = ","
      for p in pessoas:
         ids.append(str(p.id))

print("Ids: {}".format(separador.join(ids)))
Ruben_Ribeiro

Hum ok… e pra obter o maior id é só max(ids)??

Villagram

sim

Ruben_Ribeiro

Obrigado valeu mesmo só mais uma coisa

if id < max(ids):
		soma=1
		id = int(id) + int(soma)

é um á parte… acho qeu isso não está correto, poderia me ajudar?

Ruben_Ribeiro

Opá já resolvi, obrigado pela sua ajuda amigo, sério!

Criado 4 de janeiro de 2019
Ultima resposta 7 de jan. de 2019
Respostas 20
Participantes 2