Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Break语句不';不要打断for循环_Python 3.x - Fatal编程技术网

Python 3.x Break语句不';不要打断for循环

Python 3.x Break语句不';不要打断for循环,python-3.x,Python 3.x,我需要从一个文本文件创建一个嵌套字典,问题是当我需要它只获取内联断点时,内部循环获取了文件中的所有断点,因此我 如果正在读取新行但未中断循环,则添加了break语句。 我在文本文件中尝试了许多其他格式,但问题仍然存在。 python代码: def create_dictionary(filename): units_dict = {} courses_dict = {} with open(filename) as f: for units in f:

我需要从一个文本文件创建一个嵌套字典,问题是当我需要它只获取内联断点时,内部循环获取了文件中的所有断点,因此我 如果正在读取新行但未中断循环,则添加了break语句。 我在文本文件中尝试了许多其他格式,但问题仍然存在。 python代码:

def create_dictionary(filename):
    units_dict = {}
    courses_dict = {}
    with open(filename) as f:
        for units in f:
            (unit_key, unit_name) = units.split(" : ")
            for course in unit_name.split(", "):
                (course_key, course_name) = course.split(": ")
                courses_dict[course_key] = course_name

                if '\n' in course:
                    break

            units_dict[unit_key] = courses_dict
    return units_dict
文本文件格式:

first : initial1: course name1, initial2: course name2
second : initial3: course name3, initial4: course name4
预期产出:

{first:{initial1: course name1, initial2: course name2},
second:{intial3: course name3, initial4: course name4}}
实际产量:

{first:{initial1: course name1, initial2: course name2, intial3: course name3, initial4: course name4},
second:{initial1: course name1, initial2: course name2, intial3: course name3, initial4: course name4}}

我对python很陌生,所以可能我犯了一个愚蠢的错误,不管怎样,如果你能帮助我,我会非常感激。
(我在不同的上下文中发布代码有类似的问题)

courses\u dict
将所有内容聚合在一起,最后每个条目都在
units\u dict
中引用同一本词典。试试这个

def create_dictionary(filename):
    units_dict = {}
    with open(filename) as f:
        for units in f:
            (unit_key, unit_name) = units.split(" : ")
            # each entry should have a new dict
            courses_dict = {}
            for course in unit_name.split(", "):
                (course_key, course_name) = course.split(": ")
                courses_dict[course_key] = course_name

                if '\n' in course:
                    break

            units_dict[unit_key] = courses_dict
    return units_dict

courses\u dict
将所有内容聚合在一起,最后每个条目都在
units\u dict
中引用同一个词典。试试这个

def create_dictionary(filename):
    units_dict = {}
    with open(filename) as f:
        for units in f:
            (unit_key, unit_name) = units.split(" : ")
            # each entry should have a new dict
            courses_dict = {}
            for course in unit_name.split(", "):
                (course_key, course_name) = course.split(": ")
                courses_dict[course_key] = course_name

                if '\n' in course:
                    break

            units_dict[unit_key] = courses_dict
    return units_dict