美文网首页
面试总结

面试总结

作者: HELLOTREE1 | 来源:发表于2018-10-01 11:21 被阅读0次

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的效率是会高于==的效率。

相关文章

网友评论

      本文标题:面试总结

      本文链接:https://www.haomeiwen.com/subject/qzlwoftx.html