Python 怎么除去list中的重复值以下是不正确的,结果是[1, 1, 2, 3, 4, 4, 5],为什么

Python 怎么除去list中的重复值以下是不正确的,结果是[1, 1, 2, 3, 4, 4, 5],为什么,第1张

需要执行两次une(a)才能去除

改了一下代码,自己跑一下下面的两端代码就应该知道为什么了,效果是一样的

>>>a=[1,1,1,1,2,3,3,3,4,4,4,4,5,5]

>>>def une(lst):

for i in lst:

print 'i=',i

print 'count('+str(i)+')='+str(lstcount(i))

if lstcount(i) > 1:

lstremove(i)

print 'a=',a

print '-----------------------------------------'

>>>une(a)

>>>a=[1,1,1,1,2,3,3,3,4,4,4,4,5,5]

>>>def une(lst):

num = len(lst)

n=0

for n in range(num):

#print 'n=',n

i = lst[n]

print 'i=',i

print 'count('+str(i)+')='+str(lstcount(i))

if lstcount(i) > 1:

lstremove(i)

print 'a=',a

print '-----------------------------------------'

>>>une(a)

怎么改une不用我教了吧

问题出在你每次得到的都是同一个list 每次取list[0] 当然永远是重复的第一个元素。

问题出在这个//[@id="newsRegion"]/ul/li 取得的所有的li不是一个个别的li。返回的list 虽然有几十个元素,但每一个用后面的xpath匹配都是可以得到相同的结果

代码如下:

def func1(num_list):

if len(num_list) != len(set(num_list)):

return True

else:

return False

if __name__ == '__main__':

num_list = [[1, 2, 3, 4], [6, 7, 8], [4, 5, 6, 6, 6]]

for one_list in num_list:

print(func1(one_list))

运行结果:

扩展资料

python对列表去重的几种方式:

1、直观方法,先建立一个新的空列表,通过遍历原来的列表,再利用逻辑关系not in 来去重。总结:这样可以做出来,但是过程不够简单。但是此方法保证了列表的顺序性。

2、利用set的自动去重功能,将列表转化为集合再转化为列表,利用集合的自动去重功能。简单快速。缺点是:使用set方法无法保证去重后的顺序。

参考资料:

python官网-Doc语法文档

1使用set的特型,python的set和其他语言类似,是一个无序不重复元素集

orgList=[1,0,3,7,7,5]

#list()方法是把字符串str或元组转成数组

formatList=list(set(orgList))

print(formatList)

结果:

[0,1,3,5,7]                                                                                     

2使用keys()方法

orgList=[1,0,3,7,7,5]

#list()方法是把字符串str或元组转成数组

formatList=list({}fromkeys(orgList)keys())

print(formatList)

结果:

[0,1,3,5,7] 

上面两种方法的问题是:结果是没有保持原来的顺序。

3循环遍历法

orgList=[1,0,3,7,7,5]

formatList=[]

foridinorgList:

ifidnotinformatList:

formatListappend(id)

print(formatList)

结果:

[1,0,3,7,5]

这样的代码不够简洁

4按照索引再次排序

orgList=[1,0,3,7,7,5]

formatList=list(set(orgList))

formatListsort(key=orgListindex)

print(formatList)

结果:

[1,0,3,7,5]

num_list=[1,2,3,4,6,7,8,4,5,6,6,6]  

if len(num_list)!=len(set(num_list)):  

    print('有重复!!!')

else:  

    print('没有重复!' )

# 如果是简单对象的话,使用集合list1 = [1,3,5,4,3,5,7]list2 = [2,3,4,5,3,4,5,6,7]print set(list1) & set(list2) # set([3, 4, 5, 7])# 复杂对象的话这种方法不适用, 需要自己写

以上就是关于Python 怎么除去list中的重复值以下是不正确的,结果是[1, 1, 2, 3, 4, 4, 5],为什么全部的内容,包括:Python 怎么除去list中的重复值以下是不正确的,结果是[1, 1, 2, 3, 4, 4, 5],为什么、用Python爬取网页并用xpath解析,得到一个内容相同的集合,为什么、Python。重复元素判定。编写一个函数,接受列表作为参数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9698885.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存