Questions tagged «list»

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

2
numpy.unique为集列表提供错误的输出
我有一个列表, sets1 = [{1},{2},{1}] 当我使用numpy的在列表中找到唯一元素时unique,我得到 np.unique(sets1) Out[18]: array([{1}, {2}, {1}], dtype=object) 可以看出,结果是错误的,就像{1}在输出中重复的一样。 当我通过使相似元素相邻来更改输入的顺序时,不会发生这种情况。 sets2 = [{1},{1},{2}] np.unique(sets2) Out[21]: array([{1}, {2}], dtype=object) 为什么会发生这种情况?还是我做的方式有问题?
14 python  list  numpy  set 

7
公平划分列表中的元素
给定玩家的评分列表,我需要将玩家(即评分)尽可能公平地分为两组。目标是最大程度地减少团队的累积评分之间的差异。我如何将玩家分成团队没有任何限制(一个团队可以有2个玩家,而另一个团队可以有10个玩家)。 例如:[5, 6, 2, 10, 2, 3, 4]应返回([6, 5, 3, 2], [10, 4, 2]) 我想知道解决这个问题的算法。请注意,我正在参加在线编程入门课程,因此,简单的算法将不胜感激。 我正在使用以下代码,但是由于某种原因,在线代码检查器说这是不正确的。 def partition(ratings): set1 = [] set2 =[] sum_1 = 0 sum_2 = 0 for n in sorted(ratings, reverse=True): if sum_1 < sum_2: set1.append(n) sum_1 = sum_1 + n else: set2.append(n) sum_2 = sum_2 + …
12 python  algorithm  list 

2
如何理解此Java 8 Stream collect()方法?
我试图将一个int数组转换为List,并且采取了使用Java 8 Stream的陌生路线,并提出了这个建议。 Arrays.stream(arr).boxed().collect(Collectors.toList()); 我仍然很难完全理解这条线, 为什么Collectors.toList()在这种情况下返回一个ArrayList<Integer>实现List接口?为什么不LinkedList<Integer>符合List接口的通用类呢?我找不到这事,除了简短提的ArrayList 这里,在API说明部分。 左边的 意思是什么?显然是通用返回类型(在我的代码中)。而且我认为是该方法的泛型类型参数,但是如何指定它们呢?我查看了Collector界面文档,但无法吸收它。 Stream.collect()RArrayList<Integer><R, A>


4
与列表切片相反,元组切片不返回新对象
在Python(2和3)中。每当我们使用列表切片时,它都会返回一个新对象,例如: l1 = [1,2,3,4] print(id(l1)) l2 = l1[:] print(id(l2)) 输出量 >>> 140344378384464 >>> 140344378387272 如果用元组重复相同的事情,则返回相同的对象,例如: t1 = (1,2,3,4) t2 = t1[:] print(id(t1)) print(id(t2)) 输出量 >>> 140344379214896 >>> 140344379214896 如果有人能弄清为什么会发生,那将是很棒的,在我的整个Python经验中,我一直以为空切片会返回一个新对象为印象。 我的理解是,它返回的对象与元组是不可变的相同,因此没有必要为其创建新副本。但是同样,文档中也没有提到它。
12 python  list  tuples  slice  cpython 

4
有没有更快的方法来检查列表中的列表是否等效?
在这里,我有1:7四个不同分区(即{1},{2,3,4},{5,6}和{7})的整数,这些分区写在一个列表中,即list(1,c(2,3,4),c(5,6),7)。我将分区视为集合,这样一个分区内元素的不同排列应被视为同一分区。例如,list(1,c(2,3,4),c(5,6),7)和list(7,1,c(2,3,4),c(6,5))是等效的。 注意,列表中的元素没有重复,例如no list(c(1,2),c(2,1),c(1,2)),因为这个问题正在讨论整个集合的互斥分区。 我在列表中列出了一些不同的排列lst,如下所示 lst <- list(list(1,c(2,3,4),c(5,6),7), list(c(2,3,4),1,7,c(5,6)), list(1,c(2,3,4),7,c(6,5)), list(7,1,c(3,2,4),c(5,6))) 我想做的就是验证所有排列是否相等。如果是,那么我们得到结果TRUE。 到目前为止,我所做的是对每个分区中的元素进行排序,并setdiff()与之一起使用interset()并对其union()进行判断(请参见下面的代码) s <- Map(function(v) Map(sort,v),lst) equivalent <- length(setdiff(Reduce(union,s),Reduce(intersect,s),))==0 但是,我估计每当分区大小扩大时,此方法都将很慢。有什么更快的方法可以做到吗?预先赞赏! 一些测试用例(小数据) # should return `TRUE` lst1 <- list(list(1,c(2,3,4),c(5,6)), list(c(2,3,4),1,c(5,6)), list(1,c(2,3,4),c(6,5))) # should return `TRUE` lst2 <- list(list(1:2, 3:4), list(3:4, 1:2)) # should return `FALSE` lst3 <- list(list(1,c(2,3,4),c(5,6)), list(c(2,3,4),1,c(5,6)), list(1,c(2,3,5),c(6,4)))

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.