我有三种类型的元素:一个字典、一个包含一个字典的列表和一个包含多个字典的列表。
a = {"foo":1}
b = [{"foo":2}]
c = [{"foo":3}, {"foo":4}]
list = [a, b, c]
我想打印所有四个值。我想到的唯一方法是检查 list 的每个元素的 type(),或者使用 try 和 except,像这样:
for i in list:
try: # i is a dict
print(i["foo"])
except: # i a list
for e in i:
print(e["foo"])
有没有更好的方法呢?
请您参考如下方法:
你可以使用isinstance
例如:
a = {"foo":1}
b = [{"foo":2}]
c = [{"foo":3}, {"foo":4}]
l = [a, b, c]
for i in l:
if isinstance(i, dict): #Check if dict object
print(i["foo"])
elif isinstance(i, list): #Check if list object
for j in i:
print(j["foo"])
输出:
1
2
3
4
