列表去重复有以下几种方法:
# *-*coding:utf-8 *-* # Auth: wangxz from functools import reduce import itertools nums = [1,3,4,53,2,21,4,4,3,-1] def first(nums): #原列表中的顺序不会改变 mid_list = [] for i in nums: if i not in mid_list: mid_list.append(i) print(mid_list) def secnd(nums): # 直接使用set处理,不过却不能保证顺序 print(set(nums)) def third(nums): # 注意python3中reduce函数需要导入from functools import reduce func = lambda x, y: x if y in x else x + [y] print(reduce(func, [[], ] + nums)) def fourth(nums): nums.sort() it = itertools.groupby(nums) for k, g in it: print(k) fourth(nums)
reducer函数详解
reduce() 函数会对参数序列中元素进行累积。
函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。
语法结构如下:
reduce(function, iterable[, initializer])
参数说明:
function: 函数名
iterable: 可迭代对象,列表,集合等
实例应用:
计算1~100的加法和: func = lambda x, y : x + y reduce(func, range(100))
注意在python3.x中使用reduce函数,需要先导入:from functools import reduce