我对Python很陌生。这个问题可能很简单。 我有两份清单如下:
Mobile= ('M1','M1','M1','M1','M1','M1','M1','M2','M2','M2','M2','M2','M2','M2')
Test=('call','call','sms','sms','mms','call','call','mms','mms','sms','sms','voltecall','voltecall','voltecall')
我想写一个循环来计算Mobile中每个值的每个测试项执行了多少次。例如,我希望代码告诉我“M1”有四个“呼叫”场景,两个“短信”和一个“彩信”。 我想我可以在dictionary中这样做,所以我创建了一个tot变量作为dictionary中的键,并创建了dictionary(如下所示),但是我不知道如何使用for和if语句来实现我想要的功能。我在下面写的代码没有给出正确的答案。它只返回零。你知道吗
Mobile= ('M1','M1','M1','M1','M1','M1','M1','M2','M2','M2','M2','M2','M2','M2')
Test=('call','call','sms','sms','mms','call','call','mms','mms','sms','sms','voltecall','voltecall','voltecall')
tot=(1,2,3,4,5,6,7,8,9,10,11,12,13,14)
a_dict=dict(zip(tot,zip(Mobile,Test)))
for k, v in a_dict.iteritems():
if (k==Mobile[1] and v==Test[1]):
countM1Test1+=1
输出:
[(('M1','sms'),2),('M2','voltecall'),3),('M1','call'),4),('M2','mms'),2),('M2','sms'),2),('M1','mms'),1)]
可以将
defaultdict
与Counter
一起使用,如下所示:如果您想要一个元组列表,可以通过列表理解轻松地从上面的字典
count
中提取元组:更新:
如果有三个列表,则可以创建嵌套的defaultdict:
注意:如果您还有更多,我建议您查看
pandas
库,它使这种类型的分组操作更直接。你知道吗相关问题 更多 >
编程相关推荐