我有2个长化学品清单(每个约100种化学品),并希望找到两个列表中常见的化学品。我基本上需要一个程序,允许我插入2个长列表,然后打印出常见的化学物质。我目前只知道java-script和python,如果不经过2个列表中至少1个中的每个化学品,我不知道如何做到这一点。
答案 0 :(得分:1)
您可以在 JavaScript 中尝试使用underscore.js进行各种操作
_.difference :
返回数组中其他数组中不存在的值。
_.difference([1, 2, 3, 4, 5], [5, 2, 10]);
=> [1, 3, 4]
您可以在 python 中尝试
list(set([1, 2, 3, 4, 5]) - set([5, 2, 10]))
=> [1, 3, 4]
答案 1 :(得分:0)
在JS中,您可以使用filter
执行类似的操作:
var arr1 = [1, 2, 3, 4, 5];
var arr2 = [3, 10, 12, 4, 15];
function findCommon(arr1, arr2) {
return arr1.filter(function (el) {
return arr2.indexOf(el) > -1;
});
}
findCommon(arr1, arr2); // [3, 4]
答案 2 :(得分:0)
您可以使用集来执行此操作。我建议首先将每个条目转换为小写,但如下所示:
list_1 = ["Barrelene", "Mimimycin"]
list_2 = ["Prismane", "barrelene", "Josiphos"]
set_1 = set([x.lower() for x in list_1])
set_2 = set([x.lower() for x in list_2])
print set_1.intersection(set_2)
这会显示:
set(['barrelene'])
如果两个列表都在文本文件中,您可以使用以下脚本:
with open('list_1.txt', 'r') as f_list_1:
set_1 = set([name.strip().lower() for name in f_list_1])
with open('list_2.txt', 'r') as f_list_2:
set_2 = set([name.strip().lower() for name in f_list_2])
for name in set_1.intersection(set_2):
print name
我建议您使用Microsoft Word将两个文档另存为文本文件。但是也可以使用Python模块直接读取docx
文件。
答案 3 :(得分:0)
l1 = [1,2,3,4]
l2 = [3,2,22]
commonInBoth = set(l1)&集(L2)
打印(commonInBoth)
{2,3}