【问题标题】:Comparing two list and getting result a list with some checks [duplicate]比较两个列表并通过一些检查获得结果列表[重复]
【发布时间】:2016-06-02 14:18:59
【问题描述】:

我有两个列表 a 和 b,我必须得到两个列表的结果看起来像这样。

    a = ['product','shampoo','vivel','spark']
    b = ['random','product','shampoo','nothing']
    c = ['product','shampoo']
    d = ['random','nothing']

我需要一个高效的,因为我必须多次执行此过程 谢谢,如果有任何不清楚的地方请告诉我。

【问题讨论】:

  • 你有什么问题?注意:“我该如何做这个作业?”太宽泛了。

标签: python list compare


【解决方案1】:

您可以使用集合操作,因为这基本上就是您所追求的。

>>> a = ['product','shampoo','vivel','spark']
>>> b = ['random','product','shampoo','nothing']

列表c 将是一组intersection 的结果

>>> c = set(a).intersection(b)
>>> c
{'shampoo', 'product'}

列表d 将是来自ba 的集合difference 的结果。

>>> d = set(b).difference(a)
>>> d
{'random', 'nothing'}

也有执行这些操作的集合运算符

>>> set(a) & set(b)
{'shampoo', 'product'}
>>> set(b) - set(a)
{'random', 'nothing'}

【讨论】:

    【解决方案2】:

    执行此任务的有效方法是使用set -

    a = ['product','shampoo','vivel','spark']
    b = ['random','product','shampoo','nothing']
    
    c = list(set(a) & set(b))
    
    d = list(set(b) - set(a))
    
    print(c)
    
    print(d)
    

    输出 -

    ['product', 'shampoo']
    ['nothing', 'random']
    

    【讨论】:

      猜你喜欢
      • 2014-05-16
      • 1970-01-01
      • 2020-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-29
      相关资源
      最近更新 更多