美文网首页
面试总结

面试总结

作者: 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