我试图将一个列表分成一系列较小的列表。 我的问题:我的分割列表function不会将它们分割成正确大小的列表。 它应该将它们分成30个大小的列表,而是将它们分成大小为114的列表? 我怎样才能让我的function分成一个列表大小为30或更less的 X列表? public static List<List<float[]>> splitList(List <float[]> locations, int nSize=30) { List<List<float[]>> list = new List<List<float[]>>(); for (int i=(int)(Math.Ceiling((decimal)(locations.Count/nSize))); i>=0; i–) { List <float[]> subLocat = new List <float[]>(locations); if (subLocat.Count >= ((i*nSize)+nSize)) subLocat.RemoveRange(i*nSize, nSize); else subLocat.RemoveRange(i*nSize, subLocat.Count-(i*nSize)); Debug.Log ("Index: "+i.ToString()+", Size: "+subLocat.Count.ToString()); list.Add (subLocat); } return list; } 如果我在大小为144的列表上使用该函数,则输出为: 指数:4,大小:120 指数:3,大小:114 […]
我可以序列化一个可序列化对象的通用列表,而不必指定它们的types。 类似于下面破碎的代码背后的意图: List<ISerializable> serializableList = new List<ISerializable>(); XmlSerializer xmlSerializer = new XmlSerializer(serializableList.GetType()); serializableList.Add((ISerializable)PersonList); using (StreamWriter streamWriter = System.IO.File.CreateText(fileName)) { xmlSerializer.Serialize(streamWriter, serializableList); } 编辑: 对于那些想知道详细信息的人:当我尝试运行这个代码时,它在XMLSerializer行上的错误是: 无法序列化接口System.Runtime.Serialization.ISerializable。 如果我更改为List<object> "There was an error generating the XML document."得到"There was an error generating the XML document." 。 InnerException细节为"{"The type System.Collections.Generic.List1[[Project1.Person, ConsoleFramework, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] may not be used in this […]
我有class级的class级名单 public class LinqTest { public int id { get; set; } public string value { get; set; } } List<LinqTest> myList = new List<LinqTest>(); myList.Add(new LinqTest() { id = 1, value = "a" }); myList.Add(new LinqTest() { id = 1, value = "b" }); myList.Add(new LinqTest() { id = 2, value = "c" }); […]
我有一堂课 class Person{ public string Name {get; set;} public string Surname {get; set;} } 和我添加一些项目的List<Person> 。 该列表绑定到我的DataGridView 。 List<Person> persons = new List<Person>(); persons.Add(new Person(){Name="Joe", Surname="Black"}); persons.Add(new Person(){Name="Misha", Surname="Kozlov"}); myGrid.DataSource = persons; 没有问题。 myGrid显示两行,但是当我将新项目添加到我的persons列表中时, myGrid不显示新的更新列表。 它只显示我之前添加的两行。 那么问题是什么? 每次重新装订都很好。 但是,当我每次将DataTable绑定到网格时,我对DataTable进行了一些更改,没有任何需要重新绑定myGrid 。 如何解决它而无需每次重新绑定?
用于连接在Scala中的列表:::和++之间有任何区别? scala> List(1,2,3) ++ List(4,5) res0: List[Int] = List(1, 2, 3, 4, 5) scala> List(1,2,3) ::: List(4,5) res1: List[Int] = List(1, 2, 3, 4, 5) scala> res0 == res1 res2: Boolean = true 从文档看起来像++更一般,而:::是List特定的。 是否提供了后者,因为它在其他function语言中使用?
你会喜欢什么样的方式来连接序列中的string,以便在每两个连续的对之间添加一个逗号。 也就是说,你如何将[ 'a', 'b', 'c' ]映射到'a,b,c' ? (案例[ s ]和[]应分别映射到s和'' )。 我通常最终会使用像''.join(map(lambda x: x+',',l))[:-1] ,但也有点不满意。 编辑:我很惭愧和高兴,解决scheme是如此简单。 显然我不知道我在做什么。 (我以前可能需要“简单”连接,并以某种方式记住s.join([e1,e2,…])作为s+e1+e2+…的简写。)
我有一个.py文件,它需要一个列表,find最小的数字,把它放到一个新的数组中,从第一个数组中删除最小的数字,并重复,直到原始数组返回包含没有更多的项目: def qSort(lsort): listlength = len(lsort) sortedlist = list() if listlength == 0: return lsort else: while listlength > 0: lmin = min(lsort) sortedlist.append(lmin) lsort.remove(lmin) listlength = len(lsort) return sortedlist 现在另一个.py文件导入qSort并在某个列表上运行它,并将其保存到一个variables中。 然后我尝试在列表中使用.reverse()命令,并最终将其作为NoneType 。 我尝试使用reversed() ,但它所做的只是说: "<listreverseiterator object at 0xSomeRandomHex>" : from qSort import qSort #refer to my first Pastebin qSort = qSort([5,42,66,1,24,5234,62]) print qSort #this […]
请考虑一个数组,如: arrayAll = [1,2,3,4,5,6,7,8,9] 是否有一个包可以做分区来获得: arrayALLPartionned = [[1,2,3],[4,5,6],[7,8,9]] 我可以看到如何使用for循环做到这一点,但是如果存在的话,将会感激“预制”function。
可能重复: 有效的方法来移动Python中的列表 我想通过任意数量的项目向右或向左旋转Python列表(后者使用负参数)。 像这样的东西: >>> l = [1,2,3,4] >>> l.rotate(0) [1,2,3,4] >>> l.rotate(1) [4,1,2,3] >>> l.rotate(-1) [2,3,4,1] >>> l.rotate(4) [1,2,3,4] 这可怎么办?
我正在生成沿着X轴的date的多系列图表。 问题是并不是图表中的所有系列在date范围内都具有相同的date。 这意味着,如果我select2月1日至3月30日,一个系列可能有2月1日开始的数据,但是只会到3月底,但另一个系列可能有整个date范围的数据。 这扭曲了我需要创build的图表。 去,鉴于查询开始时的date范围,我想生成一个date列表并填充要绘制的数据,填充那些没有数据的date为0的系列。