【问题标题】:Get common values out of a list in python从python中的列表中获取常用值
【发布时间】:2018-11-10 17:39:54
【问题描述】:

我有以下列表:

a=[{'list1': ['35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52']},
   {'list2': ['1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52']}]

我想从 list1 和 list2 中找出共同的值。我写了

x = set(a[list_2015]).intersection(a[list_2016])

但它会抛出错误:

TypeError: list indices must be integers or slices, not tuple

我希望输出是:

{35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52}

【问题讨论】:

  • 您的问题是您的列表由一个大字符串元素组成,而不是许多整数(您可能已经想到)。所以基本上你首先需要将该字符串转换为整数序列,然后使用intersection 的代码就可以正常工作!
  • 如果以下解决方案有帮助,请考虑accepting(左侧绿色勾号)。

标签: python python-3.x list set


【解决方案1】:

这是一种方式:

res = set(map(int, a[0]['list1'][0].split(','))) & \
      set(map(int, a[1]['list2'][0].split(',')))

{35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52}

注意& 运算符是set.intersection 的语法糖。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-05
    • 2018-09-01
    • 2016-12-28
    • 1970-01-01
    • 2013-07-20
    • 1970-01-01
    • 2021-11-09
    相关资源
    最近更新 更多