python列表去重函数 python3 列表去重

python 列表去重(数组)的几种方法

function

站在用户的角度思考问题,与客户深入沟通,找到兴平网站设计与兴平网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站设计、网站制作、企业官网、英文网站、手机端网站、网站推广、空间域名、网络空间、企业邮箱。业务覆盖兴平地区。

clear(arr)

{//

1

如何获取数组中每一个元素出现的次数var

o

=

{};

//

1.1

记录数组中元素出现的次数for

(var

i

=

0;

i

arr.length;

i++)

{var

item

=

arr[i];

//

数组中的每一个元素//

o[item]

=

1;//

1.2

判断o对象是否有当前遍历到的属性if

(o[item])

{//

如果o[item]

存在,说明次数不为1o[item]++;}

else

{//

如果o[item]

不存在,说明是第一次出现o[item]

=

1;}}//

console.log(o);

//

2

生成一个新的数组,存储不重复的元素var

newArray

=

[];//

2.1

遍历对象o中的所有属性for

(var

key

in

o)

{//

2.2

判断o对象中当前属性的值是否为

1

如果为1

说明不重复直接放到新数组中if

(o[key]

===

1)

{newArray.push(key);}

else

{//

o对象中当前属性

次数不为1

,说明有重复的,如果有重复的话,只存储一次//

判断当前的newArray数组中是否已经有该元素

if

(newArray.indexOf(key)

===

-1)

{newArray.push(key);}}}return

newArray;}

var

array

=

['c',

'a',

'z',

'a',

'x',

'a'];var

newArray

=

clear(array);console.log(newArray);

python中删除列表中的重复内容

题主你好,

可以通过"集合"过渡一下, 来实现列表的去重, 即整个过程是:

原始列表--集合--再转回列表

分解来看:

写到一起的形式:

=====

希望可以帮到题主, 欢迎追问.

深入理解Python reduce函数

例如上面的例子,实现一个整形集合的累加。假设lst = [1,2,3,4,5],实现累加的方式有很多:

第一种:用sum函数。

sum(lst)

第二种:循环方式。

def customer_sum(lst):

result = 0

for x in lst:

result+=x

return result

def customer_sum(lst):

result = 0

while lst:

temp = lst.pop(0)

result+=temp

return result

if name ==" main ":

lst = [1,2,3,4,5]

print customer_sum(lst)

第三种:递推求和

def add(lst,result):

if lst:

temp = lst.pop(0)

temp+=result

return add(lst,temp)

else:

return result

if name ==" main ":

lst = [1,2,3,4,5]

print add(lst,0)

第四种:reduce方式

lst = [1,2,3,4,5]

print reduce(lambda x,y:x+y,lst)

lst = [1,2,3,4,5]

print reduce(lambda x,y:x+y,lst,0)

def add(x,y):

return x+y

print reduce(add, lst)

def add(x,y):

return x+y

print reduce(add, lst,0)

有一个序列集合,例如[1,1,2,3,2,3,3,5,6,7,7,6,5,5,5],统计这个集合所有键的重复个数,例如1出现了两次,2出现了两次等。大致的思路就是用字典存储,元素就是字典的key,出现的次数就是字典的value。方法依然很多

第一种:for循环判断

def statistics(lst):

dic = {}

for k in lst:

if not k in dic:

dic[k] = 1

else:

dic[k] +=1

return dic

lst = [1,1,2,3,2,3,3,5,6,7,7,6,5,5,5]

print(statistics(lst))

第二种:比较取巧的,先把列表用set方式去重,然后用列表的count方法

def statistics2(lst):

m = set(lst)

dic = {}

for x in m:

dic[x] = lst.count(x)

lst = [1,1,2,3,2,3,3,5,6,7,7,6,5,5,5]

print statistics2(lst)

第三种:用reduce方式

def statistics(dic,k):

if not k in dic:

dic[k] = 1

else:

dic[k] +=1

return dic

lst = [1,1,2,3,2,3,3,5,6,7,7,6,5,5,5]

print reduce(statistics,lst,{})

或者

d = {}

d.extend(lst)

print reduce(statistics,d)

通过上面的例子发现,凡是要对一个集合进行操作的,并且要有一个统计结果的,能够用循环或者递归方式解决的问题,一般情况下都可以用reduce方式实现。

Python数字列表去重,如何简单的既去重还能按原来的顺序输出?

Python数字列表去重,还能按原来的顺序输出.

第一种方法

alist = [1, 2, 2, 4, 4, 6, 7]

b = []

for i in alist:

if i not in b:

b.append(i)

print(b)

源代码(注意源代码的缩进)

第二种方法

alist = [1, 2, 2, 4, 4, 6, 7]

formatList = list(set(alist))

formatList.sort(key=alist.index)

print (formatList)

源代码(注意源代码的缩进)


分享文章:python列表去重函数 python3 列表去重
分享路径:http://scjbc.cn/article/doscjcj.html

其他资讯