python 数组去重复

方法1 创建新的数组

ids = [1,2,3,4,5,6,7,8,1,2,3]
set_ids = []
for id in ids:
    if id not in set_ids:
        set_ids.append(id)
print set_ids
# 1 2 3 4 5 6 7 8

# 或者可以直接使用set,无法保持原有顺序
set_ids=set(ids )

方法2 set

ids = [1,2,3,4,5,6,7,8,1,2,3]
ids = list(set(ids))
# 1 2 3 4 5 6 7 8

方法3 利用lambda匿名函数和 reduce 函数处理

ids = [1,2,3,4,5,6,7,8,1,2,3]
func = lambda x,y:x if y in x else x + [y]
reduce(func, [[], ] + ids)

方法4 使用itertools模块

import itertools
ids = [1,2,3,4,5,6,7,8,1,2,3]
ids.sort()
it = itertools.groupby(ids)
for k, g in it:
    print k

方法5 while遍历去重

ids = [1,2,3,4,5,6,7,8,1,2,3]
def delRepeat(ids):
 for x in ids:
  while ids.count(x)>1:
   del ids[ids.index(x)]
 return ids

猜你喜欢

转载自blog.csdn.net/u014651560/article/details/110823251