Skip to main content
 首页 » 编程设计

python之迭代具有不同元素的列表

2025年05月04日20TianFang

我有三种类型的元素:一个字典、一个包含一个字典的列表和一个包含多个字典的列表。

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