试图使列表中的add元素在一起

2024-05-29 01:54:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下代码。您会注意到,三个for循环是相同的,只是第二个customerList的索引每迭代增加一个。我要做的是将调用的长度添加到列表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])  

Tags: or方法代码in列表forlenif
1条回答
网友
1楼 · 发布于 2024-05-29 01:54:19

这是我想你想要的。我想你是想确定两个人打电话给另一个人的总时间,不管是谁打给谁的。与其使用列表“hey”,不如制作一个字典“hey”,其中键是按排序顺序排列的元组(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)

相关问题 更多 >

    热门问题