Python merge all child list into parent list and r

2020-03-31 05:20发布

I have a huge list of lists. I want to Merge all child lists to parent list and remove duplicates item from parent list after merge.

What is the optimized way to do this?

For Example:

x = [['a', 'b', 'c', 2, 4], ['x', 1, 2, 3, 'z'], ['z', 'b', 'y', 'a' 'x']]

How we can get the value of x like:

['a', 'b', 'c', 1, 2, 3, 4, 'z', 'y', 'x']

3条回答
爱情/是我丢掉的垃圾
2楼-- · 2020-03-31 06:09

Use set

x = [['a', 'b', 'c', 2, 4], ['x', 1, 2, 3, 'z'], ['z', 'b', 'y', 'a' 'x']]
>>> list(set([item for sublist in x for item in sublist]))
[1, 2, 3, 4, 'z', 'ax', 'a', 'b', 'c', 'x', 'y']
查看更多
家丑人穷心不美
3楼-- · 2020-03-31 06:11

first you can convert the list of list into a one list and than apply set to that list.

x = [['a', 'b', 'c', 2, 4], ['x', 1, 2, 3, 'z'], ['z', 'b', 'y', 'a' 'x']]
new_ls=[]
for ls in x:
    new_ls.extend(ls)
print(list(set(new_ls))

output:

[1, 2, 3, 4, 'ax', 'b', 'y', 'x', 'c', 'z', 'a']
查看更多
爱情/是我丢掉的垃圾
4楼-- · 2020-03-31 06:14

Use set and chain:

x = [['a', 'b', 'c', 2, 4], ['x', 1, 2, 3, 'z'], ['z', 'b', 'y', 'a' 'x']]

from itertools import chain

result = list(set(chain.from_iterable(x)))
print(result)
查看更多
登录 后发表回答