Questions tagged «list»

列表标记可以引用:链表(节点的有序集合,每个节点都引用其后继对象)或动态数组的形式。不要用于HTML列表,而应使用[html-lists]。

18
如何通过索引从列表中删除元素
如何在Python中按索引从列表中删除元素? 我找到了list.remove方法,但是说我要删除最后一个元素,该怎么做?似乎默认的remove搜索列表,但是我不希望执行任何搜索。
1503 python  list 

27
为什么不继承List <T>?
在计划程序时,我通常会像这样思考: 足球队只是足球运动员的名单。因此,我应该用: var football_team = new List&lt;FootballPlayer&gt;(); 该列表的顺序代表了球员在名单中的排列顺序。 但是后来我意识到,除了仅列出球员名单以外,球队还具有其他属性,必须加以记录。例如,本赛季的总得分,当前预算,统一的颜色,string代表球队名称的a 等。 所以我想: 好的,足球队就像一个球员名单,但另外,它还有一个名称(a string)和一个总得分(an int)。.NET没有提供用于存储足球队的课程,因此我将创建自己的课程。最相似,最相关的现有结构是List&lt;FootballPlayer&gt;,因此我将从中继承: class FootballTeam : List&lt;FootballPlayer&gt; { public string TeamName; public int RunningTotal } 但事实证明,指南指出您不应继承List&lt;T&gt;。我对该指南在两个方面完全感到困惑。 为什么不? 显然List在某种程度上针对性能进行了优化。为何如此?如果我扩展,会导致什么性能问题List?到底会破裂什么? 我看到的另一个原因List是Microsoft提供的,并且我无法控制它,因此在公开“公共API”之后,以后不能更改它。但是我很难理解这一点。什么是公共API,我为什么要关心?如果我当前的项目没有并且不太可能拥有此公共API,那么我可以安全地忽略此指南吗?如果我确实继承自我,List 而事实证明我需要一个公共API,我会遇到什么困难? 为什么如此重要?列表就是列表。有什么可能改变?我可能要更改什么? 最后,如果Microsoft不希望我从那里继承List,他们为什么不上课sealed? 我还应该使用什么? 显然,对于自定义集合,Microsoft提供了一个Collection应该扩展而不是的类List。但这个类是非常裸露,并没有多少有用的东西,比如AddRange,例如。jvitor83的答案提供了该特定方法的性能原理,但是慢AddRange不是没有总比没有更好AddRange? 从Collection继承比从继承进行的工作量更大List,我看不出任何好处。毫无疑问,Microsoft不会无缘无故地告诉我做额外的工作,所以我不禁会觉得自己在某种程度上误解了某些东西,而继承Collection实际上并不是解决我的问题的正确方法。 我已经看到了诸如实施的建议IList。就是不行。这是几十行样板代码,对我毫无帮助。 最后,有些人建议将包裹起来List: class FootballTeam { public List&lt;FootballPlayer&gt; Players; } 这有两个问题: 它使我的代码不必要地冗长。我现在必须打电话,my_team.Players.Count而不仅仅是my_team.Count。幸运的是,使用C#,我可以定义索引器以使索引透明化,并转发内部的所有方法List……但这就是很多代码!我能从所有工作中得到什么? 只是没有任何意义。一支足球队没有“拥有”球员名单。这是球员名单。您不会说“ John McFootballer已加入SomeTeam的球员”。您说“约翰加入了SomeTeam”。您没有在“字符串的字符”中添加字母,而是在字符串中添加了字母。您没有将书添加到图书馆的书中,而是将书添加到图书馆。 …
1398 c#  .net  list  oop  inheritance 

20
如何通过对象中的属性对List <T>进行排序
我有一个名为类Order具有的属性,例如OrderId,OrderDate,Quantity,和Total。我有这个Order班的清单: List&lt;Order&gt; objListOrder = new List&lt;Order&gt;(); GetOrderList(objListOrder); // fill list of orders 现在,我想根据Order对象的一个属性对列表进行排序,例如,我需要按订单日期或订单ID对其进行排序。 我该如何在C#中做到这一点?
1247 c#  generics  list  sorting 

16
将两个列表转换成字典
想象一下您有: keys = ['name', 'age', 'food'] values = ['Monty', 42, 'spam'] 产生以下字典的最简单方法是什么? a_dict = {'name' : 'Monty', 'age' : 42, 'food' : 'spam'}
1226 python  list  dictionary 

30
如何在Python中反转列表?
如何在Python中执行以下操作? array = [0, 10, 20, 40] for (i = array.length() - 1; i &gt;= 0; i--) 我需要一个数组的元素,但是要从头到尾。
1036 python  list 

19
将数组转换为Java中的列表
如何在Java中将数组转换为列表? 我使用了,Arrays.asList()但是行为(和签名)从Java SE 1.4.2(现在已存档的文档)以某种方式改变为8,而我在网络上发现的大多数代码片段都使用1.4.2行为。 例如: int[] spam = new int[] { 1, 2, 3 }; Arrays.asList(spam) 在1.4.2上返回包含元素1,2,3的列表 在1.5.0+上返回包含数组垃圾邮件的列表 在许多情况下,它应该很容易检测到,但是有时它可能会被忽略而不会被注意到: Assert.assertTrue(Arrays.asList(spam).indexOf(4) == -1);


30
删除列表中的重复项
我几乎需要编写一个程序来检查列表中是否有重复项,如果删除了重复项,则将其删除并返回一个新列表,其中包含未重复/删除的项。这就是我所拥有的,但老实说我不知道​​该怎么办。 def remove_duplicates(): t = ['a', 'b', 'c', 'd'] t2 = ['a', 'c', 'd'] for t in t2: t.append(t.remove()) return t

21
有没有一种简单的方法可以按值删除列表元素?
a = [1, 2, 3, 4] b = a.index(6) del a[b] print(a) 上面显示了以下错误: Traceback (most recent call last): File "D:\zjm_code\a.py", line 6, in &lt;module&gt; b = a.index(6) ValueError: list.index(x): x not in list 所以我必须这样做: a = [1, 2, 3, 4] try: b = a.index(6) del a[b] except: pass print(a) 但是,没有简单的方法可以做到这一点吗?
942 python  list 

11
删除,删除和弹出列表之间的区别
&gt;&gt;&gt; a=[1,2,3] &gt;&gt;&gt; a.remove(2) &gt;&gt;&gt; a [1, 3] &gt;&gt;&gt; a=[1,2,3] &gt;&gt;&gt; del a[1] &gt;&gt;&gt; a [1, 3] &gt;&gt;&gt; a= [1,2,3] &gt;&gt;&gt; a.pop(1) 2 &gt;&gt;&gt; a [1, 3] &gt;&gt;&gt; 以上三种从列表中删除元素的方法之间有什么区别吗?
923 python  list 

6
如何并行地遍历两个列表?
我在Python中有两个可迭代的对象,我想成对地遍历它们: foo = (1, 2, 3) bar = (4, 5, 6) for (f, b) in some_iterator(foo, bar): print "f: ", f, "; b: ", b 它应导致: f: 1; b: 4 f: 2; b: 5 f: 3; b: 6 一种方法是遍历索引: for i in xrange(len(foo)): print "f: ", foo[i], "; b: ", …

14
列表理解与lambda +过滤器
我碰巧发现自己有一个基本的过滤需求:我有一个列表,并且必须按项目的属性对其进行过滤。 我的代码如下所示: my_list = [x for x in my_list if x.attribute == value] 但是后来我想,这样写会更好吗? my_list = filter(lambda x: x.attribute == value, my_list) 它更具可读性,并且如果需要性能,可以将lambda取出以获取收益。 问题是:使用第二种方法是否有警告?有任何性能差异吗?我是否完全想念Pythonic Way™,应该以另一种方式来做到这一点(例如,使用itemgetter而不是lambda)吗?

14
检查列表中是否存在值的最快方法
最快的方法是什么才能知道列表中是否存在值(列表中包含数百万个值)及其索引是什么? 我知道列表中的所有值都是唯一的,如本例所示。 我尝试的第一种方法是(在我的实际代码中为3.8秒): a = [4,2,3,1,5,6] if a.count(7) == 1: b=a.index(7) "Do something with variable b" 我尝试的第二种方法是(速度提高了2倍:实际代码为1.9秒): a = [4,2,3,1,5,6] try: b=a.index(7) except ValueError: "Do nothing" else: "Do something with variable b" 堆栈溢出用户建议的方法(我的实际代码为2.74秒): a = [4,2,3,1,5,6] if 7 in a: a.index(7) 在我的真实代码中,第一种方法耗时3.81秒,第二种方法耗时1.88秒。这是一个很好的改进,但是: 我是使用Python /脚本的初学者,有没有更快的方法来完成相同的事情并节省更多的处理时间? 我的应用程序更具体的说明: 在Blender API中,我可以访问粒子列表: particles = [1, …
815 python  performance  list 

27
获得两个列表之间的差异
我在Python中有两个列表,如下所示: temp1 = ['One', 'Two', 'Three', 'Four'] temp2 = ['One', 'Two'] 我需要用第一个列表中没有的项目创建第三个列表。从示例中,我必须得到: temp3 = ['Three', 'Four'] 有没有循环和检查的快速方法吗?

8
如何根据对象的属性对对象列表进行排序?
我有一个Python对象列表,我想按对象本身的属性对其进行排序。该列表如下所示: &gt;&gt;&gt; ut [&lt;Tag: 128&gt;, &lt;Tag: 2008&gt;, &lt;Tag: &lt;&gt;, &lt;Tag: actionscript&gt;, &lt;Tag: addresses&gt;, &lt;Tag: aes&gt;, &lt;Tag: ajax&gt; ...] 每个对象都有一个计数: &gt;&gt;&gt; ut[1].count 1L 我需要按递减计数对列表进行排序。 我已经看到了几种方法,但是我正在寻找Python的最佳实践。
803 python  list  sorting  oop  count 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.