Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 修改元组列表中的每个元组(最终只是删除)_Python_List_Tuples - Fatal编程技术网

Python 修改元组列表中的每个元组(最终只是删除)

Python 修改元组列表中的每个元组(最终只是删除),python,list,tuples,Python,List,Tuples,我有一个元组列表,如下所示: tradeRanges = [(0,3), (10,14), (16,16), (21,23), (25,25)] 我想做的是: 取每个元组,分析两个数字之间的差异; 如果这个差不是零,那么我想加上第三个元素,实际上是这两个数字的差;如果它是零,我只想从列表中拉出元组。 因此,最终输出为: tradeRanges = [(0,3,3), (10,14,4), (21,23,2)] 为此,我尝试编写以下脚本: for tups in tradeRanges:

我有一个元组列表,如下所示:

tradeRanges = [(0,3), (10,14), (16,16), (21,23), (25,25)]
我想做的是:

取每个元组,分析两个数字之间的差异; 如果这个差不是零,那么我想加上第三个元素,实际上是这两个数字的差;如果它是零,我只想从列表中拉出元组。 因此,最终输出为:

tradeRanges = [(0,3,3), (10,14,4), (21,23,2)]
为此,我尝试编写以下脚本:

for tups in tradeRanges:
    tradeRanges.remove(tups)
    tups = list(tups)
    lenTup = tups[1]-tups[0]
    if lenTup > 0:
        tups.append(lenTup) #so when it's done I would have the list into the same order
        tups = tuple(tups)
        tradeRanges.append(tups)
这里的问题是它跳过了元素。当它获取元素0,3并移除它时,它将保存元素16,16,而不是将元素10,14保存在内存中。我有一个模糊的想法为什么会发生这种情况可能for循环负责元素的定位?但我不知道如何修复它。有没有什么好办法,或者我应该使用一些控制变量来考虑列表中元素的位置? tups=tupletups
tradeRanges.appendtups

你在4分钟内就解决了我两个小时以来一直在苦苦挣扎的问题。好的,谢谢它工作得很好!你在4分钟内解决了我两个小时以来一直在苦苦挣扎的问题。好的,谢谢它工作得很好!
tradeRanges = [(0,3), (10,14), (16,16), (21,23), (25,25)]
print [(n1, n2, abs(n1-n2)) for n1, n2 in tradeRanges if n1 != n2]
# [(0, 3, 3), (10, 14, 4), (21, 23, 2)]