Python 返回生成器字典是最有效的方法

Python 返回生成器字典是最有效的方法,python,dictionary,itertools,robustness,Python,Dictionary,Itertools,Robustness,我写过这个函数,它可以返回一个字典,我认为无论是通过itertools还是仅仅使用yeild,我都可以返回字典,但对于字典,我从来没有这样做过 如何使此函数不必像configDb那样调用,而只需configDb[key]就可以为我提供值?无法生成字典,但可以生成键值元组 部分配置文件几乎没有用处,因此在生成的字典中似乎没有什么意义 def configDb(): """ Reads git global config file Returns:

我写过这个函数,它可以返回一个字典,我认为无论是通过itertools还是仅仅使用yeild,我都可以返回字典,但对于字典,我从来没有这样做过

如何使此函数不必像configDb那样调用,而只需configDb[key]就可以为我提供值?

无法生成字典,但可以生成键值元组


部分配置文件几乎没有用处,因此在生成的字典中似乎没有什么意义

def configDb():
    """ Reads git global config file

        Returns:
            config(dict): git config settings
    """
    # Read git config file
    configFile, _ = execGitCommand('git config --list')
    rows = (line.split("=") for line in configFile.splitlines())
    return dict(row for row in rows if len(row)==2)

字典生成器的作用是什么?在加载所有项目之前,词典不可用;只需返回一条命令。我想我必须坚持我当前的实现。是的,我不会责怪你:
def configDb():
    """ Reads git global config file

        Returns:
            config(dict): git config settings
    """
    # Read git config file
    configFile, _ = execGitCommand('git config --list')
    config = {}
    for line in (each for each in configFile.split("\n") if each):
        yield line.split("=")[0], line.split("=")[-1]
def configDb():
    """ Reads git global config file

        Returns:
            config(dict): git config settings
    """
    # Read git config file
    configFile, _ = execGitCommand('git config --list')
    rows = (line.split("=") for line in configFile.splitlines())
    return dict(row for row in rows if len(row)==2)