我有一個串列串列,其中包含集合,我想要的是帶有單個集合項的串列串列。
即["item1", "item2", {1,2,3,4}, "item4"]——>[["item1", "item2", 1, "item4"],["item1", "item2", 2, "item4"],["item1", "item2", 3, "item4"],["item1", "item2", 4, "item4"]]
知道如何實作這一目標嗎?
uj5u.com熱心網友回復:
假設您只有一個需要以這種方式擴展的集合,并且它始終位于原始串列中的索引 2 處:
data = ["item1", "item2", {1, 2, 3, 4}, "item4"]
result = [data[:2] [x] data[3:] for x in data[2]]
print(result)
輸出:
[['item1', 'item2', 1, 'item4'], ['item1', 'item2', 2, 'item4'], ['item1', 'item2', 3, 'item4'], ['item1', 'item2', 4, 'item4']]
uj5u.com熱心網友回復:
這是比其他答案更通用的方法,
data = ["item1", "item2", {1,2,3,4}, "item4"]
sets = list(filter(lambda item:True if type(item) == set else False, data))
list(map(data.remove, sets))
new_data = [data [s] for set_ in sets for s in set_]
輸出 -
[['item1', 'item2', 'item4', 1],
['item1', 'item2', 'item4', 2],
['item1', 'item2', 'item4', 3],
['item1', 'item2', 'item4', 4]]
uj5u.com熱心網友回復:
data = ["item1", "item2", {1, 2, 3, 4}, "item4"]
for idx, item in enumerate(data):
if type(item) == set:
for i in list(item):
print(data[:idx] [i] data[idx 1:])
輸出:
['item1', 'item2', 1, 'item4']
['item1', 'item2', 2, 'item4']
['item1', 'item2', 3, 'item4']
['item1', 'item2', 4, 'item4']
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/478069.html
