2017-02-18 33 views
2

如何編寫一個函數,該函數接受任意數量的列表並返回一個列表,每個元素只出現一個列表出現在任何輸入列表中?例如:一個函數,接受任意數量的列表並返回一個列表,每個元素只出現一次python

list1 = [1,2,3,1,3,5] 
list2 = [2,3,4,"a","b"] 
list3 = [4,5,6,"b","c] 
# and the result: 
result_list = [1,2,3,4,5,6,"a","b","c"] 

我在尋找與按關鍵字傳遞的參數也許是一個不確定數的函數。

+0

我正在尋找一個函數,可能是由關鍵字傳遞的無限數量的參數。 –

回答

2

將它們結合起來,然後讓一組刪除重複,然後再轉換回列表

list1 = [1,2,3,1,3,5] 
list2 = [2,3,4,'a','b'] 
list3 = [4,5,6,'b','c'] 

print(list(set(list1 + list2 + list3))) 

如果你想讓它像一個功能,也許這樣的事情,你可以通過在任意數量的名單你喜歡

def unique_list(*args): 
    l = [] 
    [l.extend(x) for x in args] 
    return list(set(l)) 

if __name__ == '__main__': 
    new_list = unique_list([1,2,3,1,3,5], [2,3,4,'a','b'], [4,5,6,'b','c']) 
    print(new_list) 
1

試試這個,

def combine_lists(*argv): 
    sum_lst = [] 
    for lst in argv: 
     sum_lst += lst 
    return list(set(sum_lst)) 

Results

In [58]: combine_lists(list1,list2,list3) 
Out[58]: ['a', 1, 2, 3, 4, 5, 6, 'c', 'b'] 
In [59]: combine_lists(list1,list2,list3,list2,list1) 
Out[59]: ['a', 1, 2, 3, 4, 5, 6, 'c', 'b'] 
+0

工作正常!謝謝! –

相關問題