我如何在python中接受用户的嵌套字典

菲亚菲

我正在研究非确定性有限自动机(NFA)的模拟,我想让用户输入状态、字母和事务功能。对于事务功能:变量t_state用户可以像这样为每个字母输入多个状态在此处输入图像描述

我使用了嵌套字典

count_State = int(input("Please enter the number of NFA states..\n"))
states=list(map(int, input("Enter the states:-").strip().split()))         # NFA state set
count_alpha = int(input("Please enter the number of alphabets used\n"))
symbols=list(map(str, input("Enter the NFA alphabets:-").strip().split()))  # NFA alphabet
t_state = {}
for i in range(count_State):
    dict_name = input("Enter the state: ")
    t_state[dict_name] = {}
    for i in range(count_alpha):
        alphabet = input("Enter the alphabet: ")
        numVals = int(input("How many transition for that alphabet?\n"))
        transiction = []
        for value in range(numVals):
            transiction.append(input("Next transition\n"))
            dict_name[alphabet] = transiction
print(t_state)

我收到了这个错误:dict_name[alphabet] = transiction TypeError: 'str' object does not support item assignment

预期输出:

t_state = {
        '1': {
            'a': ['2','4'],
            'b': ['3']
        },
        '2': {
            'a': ['5'],
            'b': ['1']
        },
        '3': {
            'a': ['5'],
            'b': ['1']
        },
        '4': {
            'a': ['1'],
            'b': ['5']
        },
        '5': {
            '#': ['2'],
            'b': ['3']
        }
    }
SM1312

这应该这样做:

count_State = int(input("Please enter the number of NFA states..\n"))
states=list(map(int, input("Enter the states:-").strip().split()))         # NFA state set
count_alpha = int(input("Please enter the number of alphabets used\n"))
symbols=list(map(str, input("Enter the NFA alphabets:-").strip().split()))  # NFA alphabet
t_state = {}
for i in range(count_State):
    dict_name = input("Enter the state: ")
    t_state[dict_name] = {}
    for i in range(count_alpha):
        alphabet = input("Enter the alphabet: ")
        numVals = int(input("How many transition for that alphabet?\n"))
        transiction = []
        for value in range(numVals):
            transiction.append(input("Next transition\n"))
            t_state[dict_name][alphabet] = transiction
print(t_state)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Python脚本中接受管道输入,然后接受用户提示的输入?

我如何在discord.py中接受用户输入

如何在jshell脚本中接受用户输入?

如何在swift和xcode中接受用户输入

如何在Pyqt5 Python中打开另一个窗口并接受用户输入

如何在接受用户输入后阻止Python插入新行?

如何在Golang(fmt.scan)中接受用户输入

如何在使用Plink执行的bash文件中接受用户输入?

如何在NAV 2016中使用C / AL接受用户输入?

如何在不等待换行的情况下在C中接受用户输入?

如何在 Discord 中创建一个接受用户输入的弹出窗口?

如何在while循环中接受用户输入

如何在 main 中调用 my_function 并提示用户在 main 方法中输入;my_function 接受用户输入并以相反的顺序连接(Python 3)

当python中的空格和换行符分隔开来时,如何接受用户输入?

我该如何在C#中设置三种方法来接受用户输入并对输入进行数学运算?

当Python 3接受用户输入时,如何执行函数?

如何使用Java在数组中接受用户输入?

我无法正确接受用户的输入

如何在 PowerShell Plus 中创建一组接受用户输入的文件夹

如何从函数内接受用户输入?

Bash:如何正确接受用户输入?

无法在perl中接受用户输入

无法接受用户在 bash 中的输入

在C中接受用户的连续输入

无法在 Dart 中接受用户输入

如何在python中创建嵌套字典

如何在python中制作嵌套字典?

如何在Python中创建嵌套字典?

我正在编写代码以接受用户输入并以python提供其文档。但是用户输入中的字符串与python中的引号一起使用