count列表中的元组中的count =“”

时间:2013-11-20 17:56:02

标签: python list

我有一个元组列表列表:

[[("AA","AA"),("QQ","")],[("CC",""),("QQ","")],...]

我正在尝试计算元组第二个值中空值""的数量。在上面的情况下,它将是:

我需要列表中的答案,其中包含每个嵌套列表的出现总和(在上面的示例中,它将是[1,2,...]。

我正在尝试这样的事情

with open(file, 'r') as f:
    obj = pickle.load(f)
    count=Counter(elem for elem in el for el in obj if elem[0]=="")

是否有可能以某种方式使用2“for”作为嵌套列表?

2 个答案:

答案 0 :(得分:2)

使用带有sum()的列表推导和生成器表达式:

[sum(1 for t in tups if t[1] == '') for tups in obj]

演示:

>>> obj = [[("AA", "AA"), ("QQ", "")], [("CC", ""), ("QQ", "")]]
>>> [sum(1 for t in tups if t[1] == '') for tups in obj]
[1, 2]

答案 1 :(得分:1)

[sum(0 if x[1] else 1 for x in sub_lst) for sub_lst in big_list]