python删除列表重复元素
设一临时列表保存结果,从头遍历原列表,如临时列表中没有当前元素则追加:
def deleteDuplicatedElementFromList2(list):
resultList = []
foritemin list:
ifnotitemin resultList:
resultList.append(item)
returnresultList
利用python中集合元素惟一性特点,将列表转为集合,将转为列表返回:
def deleteDuplicatedElementFromList3(listA):
#return list(set(listA))returnsorted(set(listA), key = listA.index)
is和==区别
==比较操作符:用来比较两个对象是否相等,value做为判断因素;
is同一性运算符:比较判断两个对象是否相同,id做为判断因素。
Python中,万物皆对象!万物皆对象!万物皆对象!(很重要,重复3遍)
每个对象包含3个属性,id,type,value
id就是对象地址,可以通过内置函数id()查看对象引用的地址。
type就是对象类型,可以通过内置函数type()查看对象的类型。
value就是对象的值。
a = 1
b = a
c = 1
d = 1.0
这里有3个对象abc,类型都是int。值都是1。
id(a) # 35556792L id(b) # 35556792L id(c) # 35556792L id(d) # 21253459L
本例中,毫无疑问,3兄弟abc都是引用的同一个地址35556792L下的内容。
当你想判断a is b的时候,实际上比较的是id(a)==id(b)。结果为True。
当你写成a==b时候,实际上比较的是id(a)这个地址指向的值是不是和id(b)这个地址指向值一样。结果为True。
同理,如果你写的是a is d,那么结果就是False。
而此时,a==d,结果却是True,因为值是一样的。(其实还会涉及到type的比较,此处忽略)
引申内容:
所以大多数情况下当用is和==的结果是一样时,用is的效率是会高于==的效率。
网友评论