一道大厂测开面试题

Posted df888

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一道大厂测开面试题相关的知识,希望对你有一定的参考价值。

技术图片

这是网上看到的题,非本人。

以下是我给出的答案,

import re

s = "192.0.0.1?!289.0.0.1!0.0.0.0!192.163.10.20?192.0.0.1"
ips = re.split(r"?!|!|?", s)


def lastOne(i):
    return i.split('.')[-1]


ips.sort(key=lastOne)
print(ips)

个人观点:

  1. 应避免使用lambda,提高代码可读性
  2. 使用lambda之前,看看operator的itemgetter, attrgetter, methodcaller
# itemgetter
key=lambda row: row[-1]
key=itemgetter(-1)  # 推荐
key=lambda row: row['city']
key=itemgetter('city')  # 推荐
# attrgetter
key=lambda p: p.quantity
key=attrgetter('quantity')  # 推荐
# methodcaller
key=lambda s: s.casefold()
key=methodcaller('casefold')  # 推荐

以上是关于一道大厂测开面试题的主要内容,如果未能解决你的问题,请参考以下文章