Генерация набора данных из пользовательского ввода - PullRequest
0 голосов
/ 22 марта 2019

Только начал работать с Python, и я хотел бы знать, как создать набор только из пользовательского ввода. Я работаю над проектом, в котором студент должен пройти некоторые курсы, однако для некоторых курсов есть некоторые предпосылки. Первой строкой ввода от пользователя будет количество курсов и общее количество зависимостей, как таковое:

5 4

Следующим вводом (сколько бы там ни было) будут идентификаторы курса и предварительные условия, которые могут иметь курсы, такие как:

1 3
2 3
4 1
4 2

В настоящее время я просто создаю его сам, например:

data ={
       '1': set('3'),
       '2': set('3'),
       '4': set('1'),
       '4': set('2')
      }

1 Ответ

0 голосов
/ 22 марта 2019

Какой ввод вы ожидаете? И значение в вашем словаре должно быть набором? Если это словарь, ключ 4 на самом деле не работает так, как вы намереваетесь: set('1') и set('2') перезапишут друг друга, если вы обновите ключ. Предполагая, что это из файла с этим конкретным форматом и вы используете наборы, вы можете сделать что-то вроде этого:

data = {}

with open("file.txt", "r") as f:
    for line in f.readlines():
        parsed_line = line.split()
        key, value = parsed_line[0], parsed_line[1]

        if key in data:
            data[key].add(value)
        else:
            data[key] = set(value)

Это приведет к чему-то вроде: {'1': {'3'}, '2': {'3'}, '4': {'1', '2'}}

...