Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.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 从列表中访问字典_Python - Fatal编程技术网

Python 从列表中访问字典

Python 从列表中访问字典,python,Python,我有一些字典如下 d1={} d2={} d3={} 字典键的值包含列表 和一份清单 l1=[d1,d2,d3] 列表包含所有可用词典的名称。我想通过包含所有词典名称的列表遍历所有可用词典 如何通过列表访问所有这些词典 >>> l1 = [d1,d2,d3] >>> for d in l1: for k,v in d.items(): print(k,v) 更好的例子 d1 = {"a":"A"}

我有一些字典如下

d1={}  
d2={}  
d3={}  
字典键的值包含列表
和一份清单

l1=[d1,d2,d3]
列表包含所有可用词典的名称。我想通过包含所有词典名称的列表遍历所有可用词典

如何通过列表访问所有这些词典

>>> l1 = [d1,d2,d3]
>>> for d in l1:
        for k,v in d.items():
              print(k,v)
更好的例子

d1 = {"a":"A"}
d2 = {"b":"B"}
d3 = {"c":"C"}
l1 = [d1,d2,d3]
for d in l1:
    for k,v in d.items():
        print("Key = {0}, Value={1}".format(k,v))
产生

>>> 
Key = a, Value=A
Key = b, Value=B
Key = c, Value=C
如果它们只包含字典的名称,即
“d1”
,则可以执行类似操作(产生与上述相同的结果):

虽然我不推荐这样的方法。(注意:如果字典在本地范围内,也可以使用locals())

当您有一个字典,其中有一个与键关联的列表时,您可以像这样浏览该列表:

d1 = {"a":[1,2,3]}
d2 = {"b":[4,5,6]}
l1=["d1","d2"]

for d in l1:
    for k,v in globals()[d].items(): #or simply d.items() if the values in l1 are references to the dictionaries
        print("Dictionray {0}, under key {1} contains:".format(d,k))
        for e in v:
            print("\t{0}".format(e))
生产

Dictionray d1, under key a contains:
    1
    2
    3
Dictionray d2, under key b contains:
    4
    5
    6
更好的例子

d1 = {"a":"A"}
d2 = {"b":"B"}
d3 = {"c":"C"}
l1 = [d1,d2,d3]
for d in l1:
    for k,v in d.items():
        print("Key = {0}, Value={1}".format(k,v))
产生

>>> 
Key = a, Value=A
Key = b, Value=B
Key = c, Value=C
如果它们只包含字典的名称,即
“d1”
,则可以执行类似操作(产生与上述相同的结果):

虽然我不推荐这样的方法。(注意:如果字典在本地范围内,也可以使用locals())

当您有一个字典,其中有一个与键关联的列表时,您可以像这样浏览该列表:

d1 = {"a":[1,2,3]}
d2 = {"b":[4,5,6]}
l1=["d1","d2"]

for d in l1:
    for k,v in globals()[d].items(): #or simply d.items() if the values in l1 are references to the dictionaries
        print("Dictionray {0}, under key {1} contains:".format(d,k))
        for e in v:
            print("\t{0}".format(e))
生产

Dictionray d1, under key a contains:
    1
    2
    3
Dictionray d2, under key b contains:
    4
    5
    6
产生:

dictionary 0
dict key:
'a'
dict value:
[1, 2, 3]
dict key:
'b'
dict value:
[4, 5, 6]

dictionary 1
dict key:
'c'
dict value:
[7, 8, 9]
dict key:
'd'
dict value:
[10, 11, 12]

dictionary 2
dict key:
'e'
dict value:
[13, 14, 15]
dict key:
'f'
dict value:
[16, 17, 18]
产生:

dictionary 0
dict key:
'a'
dict value:
[1, 2, 3]
dict key:
'b'
dict value:
[4, 5, 6]

dictionary 1
dict key:
'c'
dict value:
[7, 8, 9]
dict key:
'd'
dict value:
[10, 11, 12]

dictionary 2
dict key:
'e'
dict value:
[13, 14, 15]
dict key:
'f'
dict value:
[16, 17, 18]
你需要“getattr”吗

或者,如果您想应用这个“全局”的,请阅读如何相对于此处的模块使用“getattr”:

您需要“getattr”吗


或者,如果您想应用此“全局”命令,请阅读如何相对于此处的模块使用“getattr:

看起来更像是列表中包含了对dict的引用,而不是它们的名称。对吗?它只包含名字。我不知道在这种情况下我是否可以引用。如果是,那么如何操作?如果
d1
是一个变量,并且您写入
l1=[d1]
,则列表包含对
d1
值的引用,而不是将
d1
作为名称。如果您使用字符串,如
l1=['d1']
,则会使事情变得更加复杂。Felix Kling,感谢您的解释:)。看起来列表更像是对dict的引用,而不是它们的名称。对吗?它只包含名字。我不知道在这种情况下我是否可以引用。如果是,那么如何操作?如果
d1
是一个变量,并且您写入
l1=[d1]
,则列表包含对
d1
值的引用,而不是将
d1
作为名称。如果您使用字符串,比如
l1=['d1']
,这将使事情变得更加复杂。Felix Kling,感谢您的解释:)。忘了提到字典键的值包含list@RameshRaithatha请看我答案的补充部分,这有帮助吗?@Ramesh如果这个答案正确回答了你的问题,你应该接受它,这样以后查看问题的人就会知道OP发现哪个答案最有用。忘了提到字典键的值包含list@RameshRaithatha请看我答案的补充部分,这有帮助吗?@Ramesh如果这个答案正确回答了你的问题,你应该接受它,这样以后查看这个问题的人就会知道OP发现哪个答案最有帮助。这是一种非常迂回的方式来创建一个口述。首先,为什么不直接跳到dict of dict,这是一个更明智的解决方案。目的是演示“getattr”,这是创建dict of dict的一种非常迂回的方法。首先,为什么不直接跳到dict的dict,这是一个更明智的解决方案。目的是演示“getattr”