Как я верю в словарь внутри класса?

Я должен создавать таблицу с пандами. Dataframe, в котором сначала я верю в класс и распределяю параметры, которые должны быть ingresador, чтобы мочь печатать таблицу.

Как я могу создавать словарь внутри класса, чтобы мочь печатать ее как таблица?

Здесь создается класс и стоимость, которые должны быть введенными в компьютер в таблице:

import pandas as pd


class registro(object):

    id_ = int()
    name = ""
    age = int()
    weight = float()
    sport = ""
    wins = int()
    loses = int()
    ties = int()

    def data(self):
        print(self.id_, "\t\t", self.name, "\t\t", self.age, "\t\t", self.weight, "\t\t", self.sport, "\t\t",
              self.wins, "\t\t", self.loses, "\t\t", self.ties)

    def __init__(self, id_, name, age, weight, sport, wins, loses, ties):
        self.id_ = id_
        self.name = name
        self.age = age
        self.weight = weight
        self.sport = sport
        self.wins = wins
        self.loses = loses
        self.ties = ties

Здесь пользователь напишет вошедшую стоимость и они сохраняют в списке, чтобы быть imprimida в функции "восходи ()"

op = 1
personas = list()
num = 1
while op == 1:
    _id = int(input(f"ID de la persona {num}: "))
    _name = input(f"Nombre de la persona {num}: ")
    _age = int(input(f"Edad de la persona {num}: "))
    _weight = float(input(f"Peso de la persona {num}: "))
    _sport = input(f"Arte marcial de la persona {num}: ")
    _wins = int(input(f"Peleas ganadas de la persona {num}: "))
    _loses = int(input(f"Peleas perdidas de la persona {num}: "))
    _ties = int(input(f"Empates de la persona {num}: "))
    personas.append(registro(_id, _name, _age, _weight,
                             _sport, _wins, _loses, _ties))

    op = int(input("Desea agregar otra persona (1 -> Si, 0 -> No): "))
    if op == 0:
        break

    num += 1


for i in personas:
    i.data()

Как я могу конвертировать список ты "являешься лично" в словаре и печатать это как DataFrame внутри функции "восходит ()?

Или как он был бы более простым способом создавать словарь внутри класса и перемещать его параметры

0
задан 04.11.2019, 04:18
1 ответ

Я не могу оставлять тебе комментарий, потому что я не имею достаточно reputaciГіn, но равный это помогает тебе для твоей проблемы. Словарь - карта ключа - стоимости. Для твоей проблемы, я представляю себе то, что у тебя есть список людей, и ты идентифицируешь каждую с идентификацией. У тебя будет словарь, где каждый ключ - идентификация человека, и стоимость serГ - в оставшуюся часть informaciГіn человека (что в свою очередь serГ - в другой словарь).

Я лично harГ - в словарь словарей, следующей формы:

1) Инициализирует признак в твоем классе, который является словарем.

self.__dictionary = {}

2) Для aГ±adir люди в словарь, ты можешь делать это следующей формой:

def _add_dictionary(self, personas):

    for persona in personas:
        id = persona[0]
        self.__dictionary[id] = {'name':persona[1], 'age':persona[2], ..., 'ties':persona[7] }

3), Чтобы печатать данные ВСЕХ людей в словаре, ты можешь делать это следующей формой:

def _print_dictionary(self):

    for persona_id in self.__dictionary:
        persona = self.__dictionary[persona_id]
        print("Nombre: " + persona['name'])
        print("Edad: " + str(persona['age']))
        ...

ЗАМЕЧАЕТ

я помещаю Тебе пример. Если у тебя есть в 2 следующих человека:

id=6, ямс = "Хорхе", age=20

id=8, ямс = "Диего", age=22

, создав словарь и aГ±adir эти 2 человека, self. __ dictionary quedarГ - в asГ-:

self.__dictionary == { 6: {'name':"Jorge", 'age':20}, 
                       8: {'name':"Diego", 'age':22}
                     }

, Если бы ты захотел напечатать возраст Хорхе, harГ-схвати следующее:

diccionario_jorge = self.__dictionary[6]
# diccionario_jorge == {'name':"Jorge", 'age':20}
print(diccionario_jorge['age'])

Или то, что является тем же самым:

print(self.__dictionary[6]['age'])

EDIT: Возможно эти mГ©todos ты были mГЎs Гєtiles для твоей проблемы в частности.

# Convertir la lista "personas" a un diccionario
# Este método estaría fuera de la clase Registro
def _registro_list_to_dictionary(self, personas):

    dictionary = {}

    # persona es un objeto de la clase Registro 
    for persona in personas:
        # La clase Registro tiene un método _get_id() que devuelve su ID
        id = persona._get_id()
        # También tiene otros "getters" para el resto de atributos
        dictionary[id] = {'name':persona._get_name(), 'age':persona._get_age(), ..., 'ties':persona._get_ties() }
    return dictionary

# Convertir la información de la clase Registro en diccionario:
# Este sería un método de la clase Registro, y al llamarlo tendrías un atributo en tu clase que almacenaría el resto de atributos como un diccionario.
def _create_dictionary(self):

    self.__dictionary = {'id': self.id_, 'name': self.name, ... }
3
ответ дан 01.12.2019, 12:51
  • 1
    В этом случае, людях он будет использован в main (вне class) и отсюда я пошлю звонить в функции? – Axel 04.11.2019, 17:39
  • 2
    Это opció n. Ты можешь делать mé совсем в классе, который делает чтение и сохраняемого в словаре в то же время, или читать неудар в лунку в main, строить список людей и pasá rsela в mé совсем, который я поместил тебе в ответ. Которое querí в эру, которую ты видел có mo был функционированием словарей, написания и чтения. – deko 04.11.2019, 17:42
  • 3
    В любом случае, я не понимаю очень хорошо проблему, возможно, потому что когда бы то ни было я использовал Панд. Я вижу, что каждый человек инстанции как объект класса Зарегистрировал. И однажды у тебя есть все созданные объекты, ты называешь mé все восходит (), чтобы печатать признаки каждого объекта, Я Регистрирую. Где ты хочешь создать словарь? – deko 04.11.2019, 17:52
  • 4
    Ты añ adido funció n, что возможно ты был má s ú til. Если я верю в то, что понимаю лучше, tú у тебя есть список людей, а именно, список объектов " Registro" и ты хочешь, чтобы этот список был словарем. Способствуй тому, чтобы признаки твоего класса были лишены, и осуществи mé совсем " getters" или сделай признаки твоего класса Реестр pú blicos или protected и согласись на них прямо чтобы строить словарь. – deko 04.11.2019, 17:55
  • 5
    У него должен бы быть класс, в котором у него были бы параметры, которые я хочу добавить к моему словарю списков, но не, как прошение его пользователя, который вводит каждую стоимость в компьютер вне main, который был введен в компьютер внутри каждого ключа словаря. Я едва вижу Ориентируемый Объекты и поэтому сражаюсь немного в логике, я буду проверять, с которым ты помог мне больше, чем что-либо, чтобы понимать логику в, как связаны данные – Axel 04.11.2019, 17:59

Теги

Похожие вопросы