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”