程序问答   发布时间:2022-05-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了item_list[-1] != item_list[-2] 的更多 Pythonic 方式?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决item_list[-1] != item_list[-2] 的更多 Pythonic 方式??

开发过程中遇到item_list[-1] != item_list[-2] 的更多 Pythonic 方式?的问题如何解决?下面主要结合日常开发的经验,给出你关于item_list[-1] != item_list[-2] 的更多 Pythonic 方式?的解决方法建议,希望对你解决item_list[-1] != item_list[-2] 的更多 Pythonic 方式?有所启发或帮助;

我正在更新然后参考添加到列表中的最后一项以确定结果,例如:

if item_List[-1] != item_List[-2]:
   outcome1

我不需要引用任何其他列表元素,只需要引用 item_List[-1] 和 [-2]。 有没有更pythonic的方法来做到这一点?此代码用于使用 websocketson_message,并且 item_List 每秒或每分钟更新一次。 这位新手编码员将不胜感激!

解决方法

你可以使用 *rest,x,y = item_list 之类的技巧然后比较,但我认为你的方法很棒。

为你已经有一个很好的方法的东西追逐一个“更pythonic”的方法,有时是不必要的。但是,我确实鼓励并喜欢您努力变得更好的尝试。继续加油!

如果您问的是效率 - 您的方法可能是最好的。


根据您在评论中的思考:

为了让您了解它有多快,它的数量级为纳秒,并且无论长度如何,速度都相同,这里是一个基准:

> py -m timeit -s "a = list(range(10_000))" "a[-1]"
2000000 loops,best of 5: 73.3 nsec per loop

> py -m timeit -s "a = list(range(100_000))" "a[-1]"
5000000 loops,best of 5: 74.5 nsec per loop

> py -m timeit -s "a = list(range(1_000_000))" "a[-1]"
5000000 loops,best of 5: 69.6 nsec per loop

每秒超过 100 亿次查找(在我 2009 年的旧电脑上)我认为已经足够快了;-)

,

Python 列表是作为数组实现的,因此获取这样的索引是一个常数时间操作。这意味着您的代码没有真正的低效率,我也没有看到任何可读性问题。也就是说,如果此检查是您唯一需要列表的内容,您可以将其简化为仅存储最后一个元素和一个布尔值,用于判断该元素是否与之​​前的元素匹配。但是,要回答您的具体问题,没有其他更pythonic 的编写方式。

大佬总结

以上是大佬教程为你收集整理的item_list[-1] != item_list[-2] 的更多 Pythonic 方式?全部内容,希望文章能够帮你解决item_list[-1] != item_list[-2] 的更多 Pythonic 方式?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: