首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >比较Python列表

比较Python列表
EN

Stack Overflow用户
提问于 2010-10-06 04:03:39
回答 4查看 18.1K关注 0票数 9

我在python中有几个很长的列表,并对它们进行了比较,找到了除了最后一个元素之外彼此相等的列表。哪种方法最快?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-10-06 04:06:58

使用像if list1[:-1] == list2[:-1]这样的东西。

票数 8
EN

Stack Overflow用户

发布于 2010-10-06 04:06:36

a[:-1]是“a中除最后一个元素以外的所有元素”的缩写。如果需要排除多个元素,请将1更改为所需的数字。

a[:-1] == b[:-1]将比较ab,但不包括它们的最后一个元素。

有关切片的详细信息,请参阅this

票数 14
EN

Stack Overflow用户

发布于 2010-10-06 04:16:14

为了比较两个列表,我认为这样可以避免复制列表的任何部分,并在发现不匹配时立即停止:

代码语言:javascript
复制
len(a)==len(b) and all(a[i] == b[i] for i in range(len(a)-1))

要在任意一组列表中查找所有匹配项,我认为您需要比较每对列表--或者至少比较没有检查过某个等效版本的每对列表(例如,如果是A=B和B=C,则不需要检查A=C)。我不知道有什么算法能让这一切变得简单。

或者,如果列表非常长,并且您希望避免遍历它们,则可以计算每个列表的前N-1个元素的校验和,然后只比较校验和。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3867262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档