在python字典中迭代单个维度

在python字典中迭代单个维度,python,key,loops,dimension,Python,Key,Loops,Dimension,可能重复: 我创建了一个二维词典 myaddresses['john','smith']=地址1 myaddresses['john','doe']=地址2 如何在时尚中迭代一维 for key in myaddresses.keys('john'): 它会迭代所有键,因此这可能不是最有效的方法,但我将说明一个显而易见的方法,以防您忽略它: for key in myaddresses.keys(): if key[0] == 'john': print myaddr

可能重复:

我创建了一个二维词典 myaddresses['john','smith']=地址1 myaddresses['john','doe']=地址2

如何在时尚中迭代一维

for key in myaddresses.keys('john'):

它会迭代所有键,因此这可能不是最有效的方法,但我将说明一个显而易见的方法,以防您忽略它:

for key in myaddresses.keys():
    if key[0] == 'john':
        print myaddresses[key]

它会迭代所有键,因此这可能不是最有效的方法,但我将说明一个显而易见的方法,以防您忽略它:

for key in myaddresses.keys():
    if key[0] == 'john':
        print myaddresses[key]
尝试:

尝试:


坏消息:至少你不能直接这么做。您所做的不是一个二维dict,而是一个以元组字符串对作为键的dict,并且只有键的散列值通常与哈希表一起使用。您需要的是顺序查找,即:

for key, val in my_dict.items():
    # no garantee we have string pair as key here
    try:
        firstname, lastname = key
    except ValueError:
        # not a pair...
        continue
    # this would require another try/except block since
    # equality test on different types can raise anything
    # but let's pretend it's ok :-/
    if firstname == "john":
        do_something_with(key, val)

不用说,它有点挫败了使用口述错误的全部意义。。。使用适当的关系数据库怎么样

坏消息:至少你不能直接这么做。您所做的不是一个二维dict,而是一个以元组字符串对作为键的dict,并且只有键的散列值通常与哈希表一起使用。您需要的是顺序查找,即:

for key, val in my_dict.items():
    # no garantee we have string pair as key here
    try:
        firstname, lastname = key
    except ValueError:
        # not a pair...
        continue
    # this would require another try/except block since
    # equality test on different types can raise anything
    # but let's pretend it's ok :-/
    if firstname == "john":
        do_something_with(key, val)

不用说,它有点挫败了使用口述错误的全部意义。。。使用适当的关系数据库怎么样

我正在解析一个文件并计算、合计、测试是否存在等等。如果有一种语法可以使用正则表达式获取密钥,而不使用整个密钥列表并进行解析,因为它可能很大,或者可能是创建哈希的另一种语法,即myhash['apple']['green']用于myhash['apple']中的密钥,我正在解析一个文件并计算,合计,测试是否存在等。如果有一种语法可以使用正则表达式获取密钥,而不使用整个密钥列表并进行解析,因为它可能很大,或者可能是用于创建哈希的不同语法,例如myhash['apple']['green']对于myhash['apple']中的密钥,你真的没有二维字典,你有一个一维的,由一对字符串组成的,所以你不可能做你想做的事情,除非你记录下所有可能的第二部分,每一个前半部分的密钥对。最好是有一个二维的dict-of-dict。你真的没有一个二维字典,你有一个由一对字符串组成的一维字典……因此,除非你记录下每一个添加的键对的前半部分的所有可能的后半部分,否则你不可能做你想做的事情。最好是有一个二维的dict。