【问题标题】:Generate dataset from user input从用户输入生成数据集
【发布时间】:2019-03-22 20:01:46
【问题描述】:

刚开始使用 Python,我想知道如何仅从用户输入创建一个集合。 我正在从事一个学生必须参加一些课程的项目,但是某些课程有一些先决条件。 用户输入的第一行将是课程数和依赖项总数,如下所示:

5 4

下一个输入(不管有多少)将是课程 ID 和课程可能具有的先决条件,例如:

1 3
2 3
4 1
4 2

目前我只是自己创建它,如下所示:

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

【问题讨论】:

    标签: python data-structures user-input


    【解决方案1】:

    您期望什么样的输入?字典中的值是否必须是一个集合?如果它是字典,则 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'}}

    【讨论】:

    • 我认为在这种情况下使用集合很容易出现问题。是什么阻止您输入的课程数量与其依赖项的数量相同?为什么不只是一个元组呢?
    • 我正在做一门课程,要求是一套。而目前,如前所述,第一个输入是两个值,即'5 4',下一个输入可以是很多数字。
    猜你喜欢
    • 2019-05-10
    • 1970-01-01
    • 1970-01-01
    • 2011-12-22
    • 2018-01-21
    • 1970-01-01
    • 1970-01-01
    • 2021-11-14
    • 2013-05-09
    相关资源
    最近更新 更多