0

次のようなタプルのリストがあるとします。

list1 = [(0, 0, 0), (1, 0, 0), (2, 0, 0), (3, 0, 0)]

タプル (0, 1, 0) をリストに追加したい場合は、次の順序にする必要があります。

list1 = [(0, 0, 0), (0,1,0), (1, 0, 0), (2, 0, 0), (3, 0, 0)] 

また、タプル (0,1,1) をリストに追加したい場合は、次の順序にする必要があります。

list1 = [(0, 0, 0), (0,1,0), (0,1,1), (1, 0, 0), (2, 0, 0), (3, 0, 0)] 

また、タプル (3,1,0) をリストに追加したい場合は、次の順序にする必要があります。

list1 = [(0, 0, 0), (0,1,0), (0,1,1), (1, 0, 0), (2, 0, 0), (3, 0, 0), (3, 1, 0)] 

タプル (def (value1, value2, value3):...) 内の値に基づいて 3 つのパラメーターを取り、それを使用してインデックス値を見つけ、タプルを正しい順序でリストします。それは非常に困難であり、助けていただければ幸いです

4

4 に答える 4

2

list1がソートされている場合に単一のタプルを挿入するには:

import bisect

bisect.insort(list1, (0, 1, 0))

2 つのソートされたリストをマージするには:

import heapq

tuples = [(0,1,0), (0,1,1), (3,1,1)]
list1 = list(heapq.merge(list1, tuples))

または小さなリスト ( len(L) < 1000000) の場合:

list1.extend(tuples)
list1.sort()
于 2013-03-03T18:44:51.660 に答える
1

シンプルにするために、新しい値を追加してリストをソートするだけです。

a = [(0, 0, 0), (1, 0, 0), (2, 0, 0), (3, 0, 0)]

def add_to_list(item1, item2, item3, the_list):
    the_list.append((item1, item2, item3))
    return sorted(the_list)    

print(add_to_list(0, 1, 0, a))
于 2013-03-03T18:25:51.143 に答える
0
>>> def fun(value1, value2, value3):
        tup = (value1, value2, value3)
        list1.append(tup)
        list1.sort()
        return(list1)

>>> list1 = [(0, 0, 0), (0,1,0), (1, 0, 0), (2, 0, 0), (3, 0, 0)] 
>>> fun(0,1,1)
[(0, 0, 0), (0, 1, 0), (0, 1, 1), (1, 0, 0), (2, 0, 0), (3, 0, 0)]
于 2013-03-03T18:24:35.187 に答える
0

書き込み機能なし:

a = [(0, 0, 0), (1, 0, 0), (2, 0, 0), (3, 0, 0)]
a = sorted(a+[(0,1,1)])

関数の使用 (t はタプル):

f = lambda a,t: sorted(a+[t])
a = f(a, (1, 1, 0))
于 2013-03-03T18:35:05.233 に答える