将列表列表与python中的列表进行比较

时间:2017-05-10 13:24:53

标签: python jython jes

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

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

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

下面的列表3输出的示例
list3 = [(5, 'not'), (10, 'which'), (1, 'abc')]

这是使用JES,它缺少python的一些全部功能,所以id假设我只能用for循环来回答这个

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

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

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

在python中我会这样做:

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

不确定JES

答案 1 :(得分:0)

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

>>> 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')]