2024-04-25 22:26:01 发布
网友
使用像if list1[:-1] == list2[:-1]这样的东西。
if list1[:-1] == list2[:-1]
要比较两个列表,我认为这样可以避免复制列表的任何部分,并在发现不匹配时立即停止:
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个元素的校验和,然后比较这些校验和。
a[:-1]是“所有a元素,但最后一个元素”的简写。如果需要排除多个元素,请将1改为所需的数字。
a[:-1]
a
a[:-1] == b[:-1]将比较a和b而不比较它们的最终元素。
a[:-1] == b[:-1]
b
有关切片的详细信息,请参见this。
使用像
if list1[:-1] == list2[:-1]
这样的东西。要比较两个列表,我认为这样可以避免复制列表的任何部分,并在发现不匹配时立即停止:
要在任意一组列表中找到所有匹配项,我想您需要比较每一对列表——或者至少,您没有检查过的每一对列表的某个等效版本(例如,如果A=B和B=C,则不需要检查A=C)。我不知道有什么算法能让这个简单。
或者,如果列表非常长,并且您希望避免遍历它们,您可以计算每个元素的前N-1个元素的校验和,然后比较这些校验和。
a[:-1]
是“所有a
元素,但最后一个元素”的简写。如果需要排除多个元素,请将1改为所需的数字。a[:-1] == b[:-1]
将比较a
和b
而不比较它们的最终元素。有关切片的详细信息,请参见this。
相关问题 更多 >
编程相关推荐