我如何找到两个列表之间的共同点?
How do I find what is common between 2 lists?
我有2个很长的化学品清单(大约1个)。每种100种化学物质),并想找出哪种化学物质在两个列表中都是常见的。我基本上需要一个程序,它可以让我插入两个长列表,然后打印出常见的化学物质。我目前只知道java-script和python,我不知道如何做到这一点,而不通过2个列表中至少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]
在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]
演示您可以使用集合来做到这一点。我建议首先将每个条目转换为小写,不过如下所示:
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
文件。
l1 = [1,2,3,4]
l2 = [3,2,22]
commonInBoth = set(l1) &集(l2)
打印(commonInBoth)
{2,3}
相关文章:
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 根据两个下拉列表的默认值禁用按钮
- 根据前两个下拉ID显示第三个下拉列表
- 修复列表的绝对位置(li's隐藏在前两个后面)
- 使用两个下拉列表的值填充文本框
- 如何在Javascript中交换两个列表的子列表
- 需要在 html 中使用两个下拉列表来显示不同的 json 值
- 两个下拉列表中的文本字段
- Meteor:如何使用空格键创建包含两个集合数据的树列表
- 使用Jquery比较Javascript中的两个列表/表
- 如何在AngularJS中显示基于两个下拉列表的内容
- jquery-mobile的列表视图中的两个弹出窗口
- 将同一个元素追加到两个下拉列表中只会导致最后一个元素被追加
- jQuery验证插件-比较两个选择下拉列表的自定义方法
- 如何使两个角度列表在html表中并排显示
- 如何在同一个网页上创建两个连接列表
- Kendo Grid UI水印列或一列的两个下拉列表
- AngularJS:用两个JSON数组填充复选框列表,最初检查了一个数组中的一些项
- jQuery ui自动完成下拉列表中的两个字段
- 选择绑定到同一范围的按钮,单击时会相互触发.如何从angular.js中的两个选择列表按钮解除范围绑定