列表元素去重2种方法
方法一:用列表def distincValue(source,objList):
for each in source:
if each not in objList:
objList.append(each)
return(objList)
print(distincValue(,[]))
方法二:用集合
list1 =
list2 = list(set(list1))
print(list2) 用方法2去重后,能不能使输出值按照原数据的顺序,要求不用循环体
输入:2,2,5,6,7,8,3,2,9
输出: 折折叠叠像弹簧 发表于 2020-3-19 14:04
用方法2去重后,能不能使输出值按照原数据的顺序,要求不用循环体
输入:2,2,5,6,7,8,3,2,9
输出:
如果保持顺序,用集合不行。但是集合去重速度快。 TJBEST 发表于 2020-3-19 14:12
如果保持顺序,用集合不行。但是集合去重速度快。
这是我们课后的一道思考题,提示是通过index方法和sorted函数的key值 折折叠叠像弹簧 发表于 2020-3-19 14:21
这是我们课后的一道思考题,提示是通过index方法和sorted函数的key值
你不是都知道了吗。。。
sorted(set(list1), key = list1.index) wcshds 发表于 2020-3-19 14:34
你不是都知道了吗。。。
谢谢!!!我一直想不明白list1.index()括号里要填什么,为什么可以不用括号? 本帖最后由 TJBEST 于 2020-3-19 15:38 编辑
折折叠叠像弹簧 发表于 2020-3-19 15:07
谢谢!!!我一直想不明白list1.index()括号里要填什么,为什么可以不用括号?
list.index(obj)——找出第一个匹配到参数obj(值)的索引,返回值:返回索引值。
key传进的必须是函数
比如sorted(arr,key = lambda x:x) x表示arr的一个元素,即arr按照每个元素的下标为0的值对arr元素进行排序
arr = [,[-1,-1],] 排序结果:[[-1,-1],,]
你的要求应该这个程序 应该真么写更好理解
sorted(set(list1), key = lambda x:list.index(x))即按照原列表第一次出现的顺序进行排序
sorted(set(list1), key = list1.index)与我写的程序是等价的
因为 假设
func =lambda x:list.index(x)
则func(x)与list1.index(x)返回值一致,效果一样 TJBEST 发表于 2020-3-19 15:26
list.index(obj)——找出第一个匹配到参数obj(值)的索引,返回值:返回索引值。
key传进的必须是函 ...
非常感谢!!
页:
[1]