两个list进行比较
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两个list进行比较相关的知识,希望对你有一定的参考价值。
list1[1,2,3,4,5]
list2[1,2,6]
如何用两个循环比较,可以得到1中没有而2中有的数据6
以及2中没有1中有的数据 2,4,5
求具体代码 谢谢
l2 = filter(lambda x:x not in list2, list1) #得到lsit1中不在lsit2中的数 参考技术B 只对两个有序list有效,没测试过:
iterator it1 = list1.begin();
iterator it2 = list2.begin();
for (;it2 != list2.end();it2++)
LoopInHere:
if(it1 == list1.end())
std::cout << it2.value() << std::endl;
continue;
if(it1.value() == it2.value())
it1 ++;
continue;
else if(it1.value() < it2.value())
std::cout << it1.value() << std::endl;
it1 ++;
goto LoopInHere;
else
std::cout << it2.value() << std::endl;
continue;
本回答被提问者采纳 参考技术C 用for循环嵌套 就能完成了 参考技术D 只能用循环来解决。
listA的数据量比listB的数据量大的时候:
for (int i = 0; i < listB.toArray().length; i++)
if (listA.contains(listB.toArray()[i]))
System.out.println(listB.toArray()[i]);
从问题补充来看listA应该不是直接存放数据,而是存放数据的集合,这样就需要把具体什么类型的集合说清除否则无法解答。
假设listA用一个数组存放“ID”“NAME”“AGE”列而listB直接存放“PID”的话。
listA.add(new String[] "id", "name", "age");
listB.add("pid");
for (int i = 0; i < listA .toArray().length; i++)
if (listB .contains(((String[])listA .toArray()[i])[0]))
System.out.println(
"id : " + ((String[])listA .toArray()[i])[0] +
"name : " + ((String[])listA .toArray()[i])[1] +
"age : " + ((String[])listA .toArray()[i])[2]
);
据我现在的水平只能想到用循环了,特别是你的List中放的还那么复杂。
虽然数据量大的时候用循环是很消耗资源,但是没有更好选择的情况下也只能用循环了。 第5个回答 2011-09-29 你的两个list是有序的还是无序的?
PHP 比较两个数组是否是相同
``` if($dk_list){ //合并另一个数组,组成新的数组 $res_33 = array_merge($_res2,$dk_list); //比较数组和移除数组中重复的值 进行比较个数 if (count($res_33) == count(array_unique($res_33))) { //执行如果不相同的操作 } } ``` > 更多精彩文章请关注 [王明昌博客](https://www.wangmingchang.com)以上是关于两个list进行比较的主要内容,如果未能解决你的问题,请参考以下文章