我有以下代码。正如您所注意到的,除了第二个customerList
的索引每次迭代增加一个外,三个for循环是相同的。我正在做的是当呼叫在同一个人之间时,将列表hey
的呼叫长度添加。这种方法有效,但我需要继续使用大约80种不同的来电/接收器组合。有关最佳方法的任何想法吗?
for i in range(0, len(listOfCalls)):
if listOfCalls[i][1] == customerList[0][1] or listOfCalls[i][1] == customerList[2][1]:
if listOfCalls[i][2] == customerList[0][1] or listOfCalls[i][2] == customerList[2][1]:
hey[1] += int(listOfCalls[i][3])
for i in range(0, len(listOfCalls)):
if listOfCalls[i][1] == customerList[0][1] or listOfCalls[i][1] == customerList[3][1]:
if listOfCalls[i][2] == customerList[0][1] or listOfCalls[i][2] == customerList[3][1]:
hey[2] += int(listOfCalls[i][3])
for i in range(0, len(listOfCalls)):
if listOfCalls[i][1] == customerList[0][1] or listOfCalls[i][1] == customerList[4][1]:
if listOfCalls[i][2] == customerList[0][1] or listOfCalls[i][2] == customerList[4][1]:
hey[3] += int(listOfCalls[i][3])
答案 0 :(得分:1)
这就是我想你想要的。我想你正在试图确定两个人花在一个花药手机上的总时间,无论谁叫谁。而不是使用列表“嘿”,你最好使字典“嘿”,其中键是按排序顺序的元组(caller1,caller2)。所以像这样:
hey = {}
for call in listOfCalls:
caller1, caller2, dur = call
key = tuple(sorted((caller1, caller2)))
if key in hey:
hey[key] += int(dur)
else:
hey[key] = int(dur)