Tag: 列表

检查一个列表是否包含另一个列表中的元素

我有两个不同的对象在他们的列表。 List<Object1> list1; List<Object2> list2; 我想检查list1中是否存在list1中的元素,基于特定的属性(Object1和Object2有(除其他外),一个互相属性(types为Long),名为attributeSame)。 现在,我这样做: boolean found = false; for(Object1 object1 : list1){ for(Object2 object2: list2){ if(object1.getAttributeSame() == object2.getAttributeSame()){ found = true; //also do something } } if(!found){ //do something } found = false; } 但我认为有一个更好,更快的方式来做到这一点:)有人可以提出呢? 谢谢!

testing列表是否共享Python中的任何项目

我想检查一个列表中的任何项目是否存在于另一个列表中。 我可以简单地用下面的代码来做,但我怀疑可能有一个库函数来做到这一点。 如果不是的话,是否有一个更pythonic方法达到相同的结果。 In [78]: a = [1, 2, 3, 4, 5] In [79]: b = [8, 7, 6] In [80]: c = [8, 7, 6, 5] In [81]: def lists_overlap(a, b): ….: for i in a: ….: if i in b: ….: return True ….: return False ….: In [82]: lists_overlap(a, b) Out[82]: False […]

在python中处理list.index(可能不存在)的最佳方法是什么?

我有这样的代码: thing_index = thing_list.index(thing) otherfunction(thing_list, thing_index) 好吧,这是简化,但你明白了。 现在thing可能不会在列表中,在这种情况下,我想传递-1作为thing_index 。 在其他语言中,这是你所期望的index()返回,如果它找不到该元素。 实际上它会抛出一个ValueError 。 我可以这样做: try: thing_index = thing_list.index(thing) except ValueError: thing_index = -1 otherfunction(thing_list, thing_index) 但是,这感觉很脏,再加上我不知道ValueError是否可以因为其他原因而被提出。 我提出了基于生成器函数的以下解决scheme,但似乎有点复杂: thing_index = ( [(i for i in xrange(len(thing_list)) if thing_list[i]==thing)] or [-1] )[0] 有一个更清洁的方式来实现相同的事情? 我们假设列表没有sorting。

如何比较数组列表与现代Java的平等?

我有两个数组列表。 如何轻松比较这些与Java 8及其function的平等,而不使用外部库? 我正在寻找比这样的暴力代码更好的(更高级的,更短的,更高效的)解决scheme(未经testing的代码,可能包含错别字等,而不是问题的要点): boolean compare(List<String[]> list1, List<String[]> list2) { // tests for nulls etc omitted if(list1.size() != list2.size()) { return false; } for(i=0; i<list1.size(); ++i) { if(!Arrays.equals(list1.get(i), list2.get(i))) { return false; } } return true; } 或者,如果没有更好的方法,那也是一个有效的答案。 奖金:如果Java 9提供更好的Java 8可以提供的更好的方式,请随时提及它。 编辑:在看了这些注释之后,看看这个问题是如何变得温和的,我认为“ 更好 ”应该包括在检查数组内容之前首先检查所有数组的长度 ,因为如果内部的内部有潜在的不平等数组很长。

我怎么知道一个pythonvariables是一个string还是一个列表?

我有一个例程,将string列表作为参数,但我想支持传递单个string并将其转换为一个string的列表。 例如: def func( files ): for f in files: doSomethingWithFile( f ) func( ['file1','file2','file3'] ) func( 'file1' ) # should be treated like ['file1'] 我的函数如何判断一个string还是一个列表已经被传入? 我知道有一个type函数,但是有一个“更pythonic”的方式?

将字典转换为C#中的列表集合

我试图将字典转换为列表时遇到问题。 示例如果我有字典模板string作为键和string作为值。 然后我希望将字典键转换为string列表收集。 Dictionary<string, string> dicNumber = new Dictionary<string, string>(); List<string> listNumber = new List<string>(); dicNumber.Add("1", "First"); dicNumber.Add("2", "Second"); dicNumber.Add("3", "Third"); // So the code may something look like this //listNumber = dicNumber.Select(??????);

更容易的方式来填充整数在.NET中的列表

可能重复: 在.NET中填充整数列表 有没有更简单或更优雅的方式来初始化C#中的整数列表除此之外呢? List<int> numberList = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; 要么 for(int i = 1; i <= 10; i++) { numberList.Add(i); } 这似乎不太实际 – 特别是如果列表包含大量的值。 循环是一个更实际的解决scheme吗? 谢谢, CC

迭代Python列表中的项目对

可能重复: 在Python中迭代列表(current,next) 迭代列表中的每两个元素 是否有可能在Python中以下列方式迭代列表(将此代码视为伪代码)? a = [5, 7, 11, 4, 5] for v, w in a: print [v, w] 它应该产生 [5, 7] [7, 11] [11, 4] [4, 5]

去掉一个string列表中的所有元素

我必须在表格中列出一大堆单词: ['this\n', 'is\n', 'a\n', 'list\n', 'of\n', 'words\n'] 然后使用strip函数,把它变成: ['this', 'is', 'a', 'list', 'of', 'words'] 我以为我写了什么可以工作,但我不断收到一个错误说: “'list'对象没有属性'strip'” 这是我试过的代码: strip_list = [] for lengths in range(1,20): strip_list.append(0) #longest word in the text file is 20 characters long for a in lines: strip_list.append(lines[a].strip())

在两个列表中应用运算符的C#方法是什么?

我习惯于这样做(来自其他语言): a = 1, 2, 3; b = 5, 1, 2; c = a * b; // c = 5, 2, 6 这需要两个相同大小的列表,并将一个函数应用于其成员,一次一个地获得结果列表。 它可能是一个像乘法(上面)那样简单的函数或更复杂的函数: c = b>a ? ba : 0; // c = 4, 0, 0 我可以想到在C#中用几种不同的方法来做到这一点,但我不确定一个C#训练的程序员会怎么做。 在C#世界中进行这种操作的正确方法是什么? (我所问的唯一部分是 c = f(a,b) 。我熟悉创build列表和访问元素。)