楼主: LPT
跳转到指定楼层
上一主题 下一主题
收起左侧

[学Python/Perl] 聊一些Python的坑,刷题的时候值得注意

 
🔗
 楼主| LPT 2020-11-1 03:52:58 | 只看该作者
全局:
KerrSpace 发表于 2020-11-1 03:44
python刷题的时候默认能用的包有哪些啊 math这些算不算?还是说我不能import anything

我觉得常用的math, collections, functools肯定都能用,除非那题目就是让你实现某个built-in function的
比如某题用comparator特别合适,但是Python3偏偏没这个,你只能用functools.cmp_to_key去写
面试官要是不乐意,那我就换个写法 :)
回复

使用道具 举报

🔗
5919393 2020-11-1 05:13:42 | 只看该作者
全局:
解决方法: 永远不要用这种写法。老老实实写Lambda。
arr2 = [[0 for i in range(5)] for j in range(5)]


这个不是lambda吧?叫list comprehension。
回复

使用道具 举报

🔗
 楼主| LPT 2020-11-1 05:24:58 | 只看该作者
全局:
5919393 发表于 2020-11-1 05:13
这个不是lambda吧?叫list comprehension。

是,学到了
回复

使用道具 举报

🔗
redhairdragon 2020-11-1 07:02:12 | 只看该作者
全局:
还有list,str操作complexity的坑
回复

使用道具 举报

🔗
sshou14 2020-11-1 07:08:26 | 只看该作者
全局:
有人碰到过python里面需要一个sorted set 的状况吗,好奇是怎么解决的。
有人遇到过需要用python 进行 heap remove的操作吗。

评分

参与人数 1大米 +2 收起 理由
chase2048 + 2 给你点个赞!

查看全部评分

回复

使用道具 举报

🔗
fxlj007 2020-11-1 07:45:00 | 只看该作者
全局:
楼主可能不是CS出身的,所以看代码有点望文生义,对编译和执行的层面没什么理解。比如 [ [1] * 5 ] * 4, 这一句,如果你稍微熟悉一点点Python,就知道它会先evaluate内部语句,赋值给一个临时变量,相当于 t = [1] * 5,然后再evaluate外层代码,相当于 [t] * 4。

楼主举得这两个例子其实都是非常符合Python一贯的逻辑和期望的。我倒是觉得楼主“默认”的行为才是奇怪。
回复

使用道具 举报

🔗
 楼主| LPT 2020-11-1 08:44:30 | 只看该作者
全局:
fxlj007 发表于 2020-11-1 07:45
楼主可能不是CS出身的,所以看代码有点望文生义,对编译和执行的层面没什么理解。比如 [ [1] * 5 ] * 4,  ...

望文生义 A.K.A Code Readability  :)
可读性强的代码就是新手也不会看走眼的代码
CS出身的也会读Clean Code吧
回复

使用道具 举报

🔗
 楼主| LPT 2020-11-1 08:46:15 | 只看该作者
全局:
sshou14 发表于 2020-11-1 07:08
有人碰到过python里面需要一个sorted set 的状况吗,好奇是怎么解决的。
有人遇到过需要用python 进行 hea ...

1) 我没看到collection里面有这个类型,这个我觉得直接用heapq或者deque模拟一个吧
2) 听起来你需要heapq?
回复

使用道具 举报

🔗
 楼主| LPT 2020-11-1 08:47:38 | 只看该作者
全局:
redhairdragon 发表于 2020-11-1 07:02
还有list,str操作complexity的坑

求详细 :)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表