【问题标题】:Comparing a list of lists to a list in python将列表列表与python中的列表进行比较
【发布时间】:2017-05-10 21:38:19
【问题描述】:

我正在尝试将列表列表与 JES 中的简单列表进行比较 这是我试图比较的数据样本

list1 = [(1, 'abc'), (5, 'no'), (5, 'not'), (10, 'which')]
 list2 = ['not', 'which', 'abc']

基本上我正在做的是将一组单词及其频率 (list1) 与不同单词列表 (list2) 进行比较,如果列表 2 与列表 1 匹配,则创建一个包含相同单词和频率的新列表列表1 这是下面列表 3 输出的示例

list3 = [(5, 'not'), (10, 'which'), (1, 'abc')]

这是使用JES,它缺少python的一些完整功能,所以我假设我只能用for循环或类似的方式回答这个问题

这是我迄今为止尝试过的,还有其他一些组合

list3 = []
    for x in keywords:
     for y in frequencyList:
        if x == y[1]:
            list3.append(y) 

感谢您的帮助

【问题讨论】:

  • list2 实际上包含变量名称,要将它们更改为单词,请添加引号 ;)
  • 你有什么问题?

标签: python jython jes


【解决方案1】:

在 python 中我会这样做:

list3 = [x for x in list1 if x[1] in list2]

虽然不确定 JES

【讨论】:

  • 这被称为列表理解吗?我会试一试
  • 确实如此。如果有任何问题,请回来找我。
  • 成功了,感谢您的帮助。老实说,没想到这么简单,一旦它让我接受答案,我就会接受:)
【解决方案2】:

您还可以使用带有 lambda 函数的过滤器,让事情变得更加 Python!

>>> list1 = [(1, 'abc'), (5, 'no'), (5, 'not'), (10, 'which')]
>>> list2 = ['not', 'which', 'abc']
>>> filter(lambda x:x[1] in list2,list1)
[(1, 'abc'), (5, 'not'), (10, 'which')]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-07
    • 1970-01-01
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多