![Python 怎么除去list中的重复值以下是不正确的,结果是[1, 1, 2, 3, 4, 4, 5],为什么,第1张 Python 怎么除去list中的重复值以下是不正确的,结果是[1, 1, 2, 3, 4, 4, 5],为什么,第1张](/aiimages/Python+%E6%80%8E%E4%B9%88%E9%99%A4%E5%8E%BBlist%E4%B8%AD%E7%9A%84%E9%87%8D%E5%A4%8D%E5%80%BC%E4%BB%A5%E4%B8%8B%E6%98%AF%E4%B8%8D%E6%AD%A3%E7%A1%AE%E7%9A%84%EF%BC%8C%E7%BB%93%E6%9E%9C%E6%98%AF%5B1%2C+1%2C+2%2C+3%2C+4%2C+4%2C+5%5D%EF%BC%8C%E4%B8%BA%E4%BB%80%E4%B9%88.png)
需要执行两次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方法无法保证去重后的顺序。
参考资料:
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。重复元素判定。编写一个函数,接受列表作为参数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)