码迷,mamicode.com
首页 > 其他好文 > 详细

一道大厂测开面试题

时间:2019-12-06 13:33:23      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:import   item   mic   可读性   png   避免   ast   答案   opera   

技术图片

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

以下是我给出的答案,

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')  # 推荐

一道大厂测开面试题

标签:import   item   mic   可读性   png   避免   ast   答案   opera   

原文地址:https://www.cnblogs.com/df888/p/11994524.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!