当前位置: 首页 > 知识库问答 >
问题:

比较两个Python列表的顺序

漆雕深
2023-03-14
    null

但是,如果清单2为a、d、b、c、e应该返回false(因为字符串d出现的顺序混乱)

共有1个答案

丁英韶
2023-03-14

首先,我们定义list1:

>>> list1='a,b,c,d,e,f,g,h,i,j'.split(',')
>>> list1
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']

虽然您的list1碰巧是按字母顺序排列的,但我们不会这样假设。无论如何,这段代码都可以工作。

现在,让我们创建一个乱序的清单2:

>>> list2 = 'a,b,f,d,e,g,c,h,i,j'.split(',')
>>> list2
['a', 'b', 'f', 'd', 'e', 'g', 'c', 'h', 'i', 'j']
>>> list2 == sorted(list2, key=lambda c: list1.index(c))
False
>>> list2 = 'a,b,d,e'.split(',')
>>> list2 == sorted(list2, key=lambda c: list1.index(c))
True

让我们考虑一个list2,它的元素不在list1中:

>>> list2 = 'a,b,d,d,e,z'.split(',')

为了忽略不需要的元素,让我们创建list2b:

>>> list2b = [c for c in list2 if c in list1]

然后我们可以像以前一样进行测试:

>>> list2b == sorted(list2b, key=lambda c: list1.index(c))
True
>>> list2b = ['a', 'b', 'd', 'd', 'e']
>>> indices = [list1.index(c) for c in list2b]
>>> all(c <= indices[i+1] for i, c in enumerate(indices[:-1]))
True
 类似资料:
  • 问题内容: 我有两个列表(不是Java列表,可以说两列) 例如 我想要一个返回多少个相同元素的方法。对于此示例,它应该为3,并且应该返回列表的相似值和不同的值。 如果是,我应该使用哈希图,然后用什么方法获得结果? 请帮忙 PS:这不是学校作业:)因此,如果您只是指导我就足够了 问题答案: 编辑 这是两个版本。一种使用,另一种使用 比较它们并从中创建您自己的版本,直到获得所需的内容。 这应该足以覆盖

  • 我有两个表,分别是产品和采购: PRODUCTS表-将获得购买的所有新产品。这意味着表prroducts中不存在相同的productname。所有独特产品列表 采购表-具有唯一purchase_id的所有采购产品的列表。 > 如果要在PURCHASE中添加或插入值,表PRODUCTS将获得PURCHASE的所有值,但前提是PURCHASE中的productname不存在于PRODUCTS中的'pr

  • 问题内容: 如果我有一个长长的清单:我分为两个清单: 我如何比较这两个列表以查看它们是否相等/相同,并约束它们必须具有相同的顺序? 我看到过一些问题,要求通过对两个列表进行排序来进行比较,但是在我的特定情况下,我不是要检查排序的比较,而是要检查相同的列表比较。 问题答案: 只需使用经典运算符: 如果相同索引处的元素相等,则列表相等。然后考虑订购。

  • 我有一个关于列表比较器的问题。我有一个带有表格的网页应用程序。我可以在这个表格中编辑数据,也可以删除行。当我编辑数据时,标准比较器工作正常,但当我删除行时,我有问题。这个问题很常见(我想),当我删除一行时,javers比较旧列表和现在的列表时,看起来是这样的:旧列表有两个对象,现在列表有一个对象(我删除了第一个),现在javers不知道哪个对象被删除了,他比较旧列表中的第一个对象和新列表中的第二个

  • 本文向大家介绍Python实现比较两个列表(list)范围,包括了Python实现比较两个列表(list)范围的使用技巧和注意事项,需要的朋友参考一下 有一道题: 比较两个列表范围,如果包含的话,返回TRUE,否则FALSE。 详细题目如下: Create a function, this function receives two lists as parameters, each list i

  • 第一次来这里,所以我希望这是有意义的! 我有两个对象数组,比如l1和l2,我想在这两个列表之间进行比较,并在l3中得到一个不匹配的值。用户类包含2个字符串: 比如,l1包含:Java、JSF、JAXR、foo l2包含:JSF、JAXR 我可以对匹配的值进行比较,但不能对不匹配的值进行比较。这种逻辑似乎有缺陷。有什么帮助吗? 对于匹配值: 但是,对于不匹配,当我说不等于时,我得到的不是唯一的值,而