【发布时间】:2017-07-21 05:52:17
【问题描述】:
我对 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”有四个“通话”场景,两个“短信”和一个“彩信”。 我以为我可以在字典中执行此操作,所以我创建了一个 tot 变量用作字典中的键并创建了字典(如下所示),但我不确定如何使用 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
【问题讨论】:
-
首先,你为什么认为你需要那个 tot 变量?,这是有用的还是必要的?其次,您可以将移动列表用作字典中的键,并将测试变量中的对应关系用作值,然后使用该信息进行计数
-
您能否提供一个您希望看到的结果示例?
-
当我尝试 zip(Mobile,Test) 时,创建的字典只有两个项目('M1','call')和('M2','voltecall')。我想也许字典需要一个唯一的键变量,这就是我创建 tot 变量的原因。我想看到的是这样的; ('M1','call',4),('M1','sms',2),('M1','mms',1) 等等。
标签: python dictionary if-statement for-loop count