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

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.

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:

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!

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:

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

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

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§”

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.

image

Coloquei assim e mesmo assim não funciona

Fica repetindo o meu menu

image

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

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

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

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

seria possível?

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

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

sim

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?