Python 如何对含有重复列表的列表求集合?
2018-03-20 21:34
477 查看
在Python的编程中,我们希望简约含有重复列表的列表,即对含有重复列表的列表求其集合,这个需求还是比较常见的。例如:L = [['Banana'],['Orange'],['Orange'],['Orange'],[],[],[],['Mango','Strawberry'],['Apple'],['Mango', 'Strawberry'], ['Mango','Strawberry']]我们想求这类列表的集合,如果直接用set命令,会得到TypeError的错误。>>> L[['Banana'], ['Orange'], ['Orange'], ['Orange'], [], [], [], ['Mango', 'Strawberry'], ['Apple'], ['Mango', 'Strawberry'], ['Mango', 'Strawberry']]>>> set(L) Traceback (most recent call last): File "<pyshell#86>", line 1, in <module> set(L)TypeError: unhashable type: 'list' 为了删除重复的列表,每个列表仅保留一个,我编写如下的程序: # Author:Li Xing Mar 2nd,2018# Simplied the multi-listsdef list_simplied(org_lst): lst_len = len(org_lst) if lst_len == 0 or lst_len == 1: return org_lst else: simplied_lst = [] repeated_index =[] for i in range(lst_len): if i in repeated_index: continue else: temp = org_lst[i] for j in range(i+1,lst_len): if org_lst[j] == temp: repeated_index.append(j) simplied_lst.append(temp) return simplied_lst>>> list_simplied(L)[['Banana'], ['Orange'], [], ['Mango', 'Strawberry'], ['Apple']]list_simplied函数的对象item,可以是元素、列表、字典等等,例如:>>> lst = [1,1,3,4,5,6,6,6,7]>>> list_simplied(lst)[1, 3, 4, 5, 6, 7]>>> x = [{1:'a',2:'b',3:'c'},{1:'a',2:'b',3:'c'},{},{}]>>> list_simplied(x)[{1: 'a', 2: 'b', 3: 'c'}, {}]喜欢的话,点个赞吧!
相关文章推荐
- Python高级编程-如何在列表,字典,集合中根据条件筛选数据?
- python中如何去除列表中重复的元素
- python3中如何在列表,字典,集合中根据条件刷选数据
- python-2-1 如何在列表, 字典, 集合中根据条件筛选数据-列表解析-filter
- python基础===如何在列表,字典,集合中根据条件筛选数据
- Python -- 如何在列表,字典,集合中筛选数据?
- python中set集合如何决定是否重复?
- 第二百九十八节,python操作redis缓存-Set集合类型,可以理解为不能有重复元素的列表
- python列表--查找集合中重复元素的个数
- python中set集合如何决定是否重复?
- Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据
- python高效编程技巧1 (如何在列表,字典,集合中根据条件筛选数据)
- python中去除列表重复元素的方法汇总
- python如何将一个多位数数值转换为列表类型
- python的列表,元组,集合,字典
- 面试题: 已知一个含有n个不同元素的集合,要求打印其所有具有k个元素的子集(不允许有重复的)
- python中列表,元祖,字典,集合区别和使用方法
- python找出列表重复值
- 2.python基础之—列表,元组,字典,集合,字符串的使用方法
- Python数据结构中列表,字典,元组,集合的总结