現在、リスト内にいくつかのタプルをマージしようとしています。いくつかのタプルをPythonリストにマージする
(u'13', u'Event 1')
(u'06', u'Event 2')
(u'07', u'Event 2')
(u'24', u'Event 3')
(u'25', u'Event 4')
(u'8', u'Event 5', 1)
(u'9', u'Event 5', 2)
(u'10', u'Event 5', 3)
(u'27', u'Event 6')
私がやろうとしている私は何でカウンターを追加したこの3倍のタプルをマージすることです。ここで私はこのようなルックスを取得するリストは、私がこれまで持っているもの
dates = [(u'13', u'01', u'19:00', u'Event 1', u'1', u'', u''),
(u'06', u'02', u'10:00', u'Event 2', u'0', u'', u''),
(u'07', u'02', u'09:00', u'Event 2', u'0', u'', u''),
(u'24', u'02', u'20:00', u'Event 3', u'1', u'', u''),
(u'25', u'02', u'19:30', u'Event 4', u'1', u'', u''),
(u'8', u'04', u'', u'Event 5', u'1', u'', u''),
(u'9', u'04', u'', u'Event 5', u'1', u'', u''),
(u'10', u'04', u'', u'Event 5', u'1', u'', u''),
(u'27', u'04', u'20:00', u'Event 6', u'1', u'', u'')]
prev_name = None
prev_day = None
counter = 1
newList = []
for value in dates:
if prev_name is None and prev_day is None:
prev_name = value[3]
prev_day = value[0]
else:
if not value[2]:
if prev_name == value[3] and int(value[0]) == (int(prev_day) + 1):
prev_name = value[3]
prev_day = value[0]
counter += 1
newList.append((value[0], value[3], counter))
continue
else:
prev_name = value[3]
prev_day = value[0]
counter = 1
newList.append((value[0], value[3], counter))
continue
newList.append((value[0], value[3]))
for value in newList:
print value
です終わり。 しかし、通常のマージ方法ではありません。 最初のエントリ以外のすべてを削除するだけでなく、カウンタをそのエントリに移動します。
ので
(u'8', u'Event 5', 1)
(u'9', u'Event 5', 2)
(u'10', u'Event 5', 3)
が
(u'8', u'Event 5', 3)
になった場合は、私はすでに、これはreoccuringイベントであれば最後にカウンタを追加するために、リストを得ました。しかし、これを1つのタプルリストエントリにマージするのは困難です。 これはicalエクスポートのためのもので、毎日1つのエントリを実行するのではなく、1つのエントリを作成する必要がありますが、長さは+ x日です。
おかげで、私が後だったまさに。また、注文を保存します。私は今すべてのイベントに合計を持っていますが、それは大丈夫です。私はイベント2が手つかずであることがわかります。だから、時間のないイベントや名前が一致する場所でのみ動作します。 – derchris
さて、得られたicでテストしました。上記のデータと同様に、イベント2は2xのエントリを持つ必要があります。しかし、名前をグループ化すると1になります。時間が設定されていない場合にのみグループ化する必要があります。データ[2] – derchris
は与えられた例に関して好都合に望ましい出力を提供します – hemraj