Python中如何最快的删除一个list中重复的值同时保证原有顺序【面试题详解】

今天爱分享给大家带来Python中如何最快的删除一个list中重复的值同时保证原有顺序【面试题详解】,希望能够帮助到大家。


def f7(seq):
    seen = set()
    seen_add = seen.add
    return [ x for x in seq if x not in seen and not seen_add(x)]

为什么要建立一个到seen.add函数的引用seen_add,而不是直接调用seen.add()呢?Python是一个动态语言,如果使用seen.add(),迭代器每次都要解析seen.add()函数,相比直接调用一个局部变量seen_add会消耗更多资源。(评论问,为什么迭代器每次都要解析seen.add())seen.add()可能会在每次迭代中可能会发生变化,而Python的Runtime没有智能到发现这一变化,因此安全起见,每次迭代过程中,迭代器都会重新检查这一对象。

原文链接:https://blog.itblood.com/4448.html,转载请注明出处。
0
特工17v0.25.8官方中文版[PC+安卓/4.45G/更新]Agent17 [v0.25.8] [神作SLG/官中/动态]
特工17v0.25.8官方中文版[PC+安卓/4.45G/更新]Agent17 [v0.25.8] [神作SLG/官中/动态]
10分钟前 有人购买 去瞅瞅看

站点公告

显示验证码
没有账号?注册  忘记密码?