【问题标题】:How does set and get commands work in python [closed]python中的set和get命令如何工作[关闭]
【发布时间】:2021-03-17 20:08:27
【问题描述】:

对于像这样的python字典,

data={
       'name':'george',
       'isRetired': True,
       'organisation': ['ABC','XYZ','MNO'],
        
     }

set 和 get 在这里如何工作?

【问题讨论】:

    标签: python linux dictionary scripting set


    【解决方案1】:
    while True:
        cmd = input('> ').split()
        if cmd[0] == 'get':
            key = ' '.join(cmd[1:])
            path = key.split('.')
            now = data
            for k in path:
                if k in now:
                    now = now[k]
                else:
                    print('Error: invalid key')
            print(now)
        elif cmd[0] == 'set':
            key, value = ' '.join(cmd[1:]).split('=')
            path = key.split('.')
            now = data
            for k in path[:-1]:
                if k in now:
                    now = now[k]
                else:
                    print('Error: invalid key')
            now[path[-1]] = value
        elif cmd[0] == 'quit':  # for debugging purposes
            break
        else:
            print('Error: invalid command')
    
    print(data)
    

    这是一个相当长的程序。它打破了命令。
    如果命令为get,则将参数按点分解并逐级获取项目。
    如果命令为set,则将参数分解为keyvalue,按点分解键并找到键,然后设置值。
    quit 命令用于调试目的。

    调试:

    > get ABC.positions.lead
    3
    > get ABC.yearsofService
    10
    > get name
    george
    > set ABC.positions.manager=5
    > quit
    {'name': 'george', 'isRetired': True, 'organisation': ['ABC', 'XYZ', 'MNO'], 'ABC': {'currentlyEmployed': False, 'yearsofService': '10', 'positions': {'executive': '2', 'manager': '5', 'lead': '3', 'ceo': None}}}
    

    【讨论】:

    • 感谢您的帮助,我被困在了这里。但是,我收到以下错误,> 获取 ABC.positions.lead > 文件“”,第 1 行获取 ABC.positions.lead ^ SyntaxError: invalid syntax >
    • 您使用的是哪个 Python 版本?我正在使用 Python 3.8.5,它工作得很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多