-1
的名單我有一個這樣的名單:如何自動分離元組
a = [(a, b), (c, i), (d, i), (e, b), (f, b), (g, i)]
我想單獨在元素b
存在的元組的列表中。結果應該是這樣的:
a = [[(a, b), (c, i), (d, i)], [(e, b)], [(f, b), (g ,i)]]
有沒有什麼辦法可以做到這一點?
的名單我有一個這樣的名單:如何自動分離元組
a = [(a, b), (c, i), (d, i), (e, b), (f, b), (g, i)]
我想單獨在元素b
存在的元組的列表中。結果應該是這樣的:
a = [[(a, b), (c, i), (d, i)], [(e, b)], [(f, b), (g ,i)]]
有沒有什麼辦法可以做到這一點?
下面是一個例子:
def group_b(arr):
b_in_group = False
grouped = []
group = []
for tup in arr:
if "b" in tup:
if not b_in_group:
group.append(tup)
b_in_group = True
else:
if group:
grouped.append(group)
group = [tup]
else:
group.append(tup)
grouped.append(group)
return grouped
print (group_b([("a", "b"), ("c", "i"), ("d", "i"), ("e", "b"), ("f", "b"), ("g", "i")]))
如果希望能在一個單一子列表列表您的輸出,你知道,將插入點始終在列表的最後一個子表。每當你看到測試數據時,附加一個新的空列表。
a = 'a'
b = 'b'
c = 'c'
d = 'd'
e = 'e'
f = 'f'
g = 'g'
h = 'h'
i = 'i'
# input list
in_list = [(a,b),(c,i),(d,i),(e,b),(f,b),(g,i)]
# output
out = [[]]
for tpl in in_list:
if b in tpl:
# if existing list has data, push empty list on end
if out[-1]:
out.append([])
out[-1].append(tpl)
print(out)
您的輸出是否與您的輸入不相同? – asongtoruin
不,不,不,不,這是一個錯誤的抱歉 –
輸出如何與輸入相關並不清楚。 –