【问题标题】:subtract list of lists from list of lists with conditional arguments从带有条件参数的列表列表中减去列表列表
【发布时间】:2023-04-01 00:08:01
【问题描述】:

我有一个棘手的问题,我很难解决问题。

我有两个列表:

firstList = [[0, 9], [0, 4], [0]]
secondList = [[18], [19, 7], [20]]

我想以升序从secondList 中的值中减去firstList 中的值,但如果firstList 中的值尚未“使用” ”。例如:

thirdList = [0,4]
fourthList = [19,7]
emptyList = []

emptyList.append(fourthList-thirdList]
print(emptyList)
>>>[7,3]

在这种情况下,19 没有被使用,因为在thirdList 中的前一个值和19 之间没有任何值。

我在想这样的事情(虽然它很快分解成伪代码)

firstList = [[0, 9], [0, 4], [0]]
secondList = [[18], [19, 7], [20]]
emptyList = [ [] for y in range(3) ]

for x in range(3) :
    #for smallest value in secondList[x], subtract all smaller values in firstList and then delete them, append values to emptyList[x]
    #for next smallest value in secondList[x], subtract all smaller values in firstList and then delete them, append values to emptyList[x]
    #repeat until firstList is empty, then exit loop

print(emptyList)
>>>[[9, 18], [3, 7], [20]]

这将排除在 secondList[1] 中使用19,因为04 在从7 中减去后已经被删除

【问题讨论】:

    标签: python for-loop conditional-statements nested-lists subtraction


    【解决方案1】:
    firstList = [[0, 9], [0, 4], [0]]
    secondList = [[18], [19, 7], [20]]
    all_results = []
    
    for x in range(0, len(firstList)):  
        values_of_first = firstList[x]
        values_of_second = secondList[x]
        values_of_first.sort()
        values_of_second.sort()  
        tmp_results = []
    
        for subtractor in values_of_second:    
            used_values = []
            for subtracted in values_of_first:
                if subtracted >= subtractor:
                    break
                else:
                    used_values.append(subtracted)
                    tmp_results.append(subtractor - subtracted)
    
            for used_value in used_values:
                values_of_first.remove(used_value)
    
        tmp_results.sort()
        all_results.append(tmp_results)
    

    它产生all_results == [[9, 18], [3, 7], [20]]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-27
      • 1970-01-01
      • 1970-01-01
      • 2017-01-15
      • 1970-01-01
      • 1970-01-01
      • 2018-11-28
      • 1970-01-01
      相关资源
      最近更新 更多