我试图解决Python中的生成递归问题.问题是:
我必须按照给定的算法来解决find_max:
我尝试过以下方法:
def find_max(L):
length = len(L)
mid_index = length/2
if length == 1:
return L[0]
else:
left = find_max(L[0:(length/2)])
right = find_max(L[(length/2):length])
max_subset = max(left,right,left+right)
return max_subset
Run Code Online (Sandbox Code Playgroud)
这可以解决长度为2的列表.如何将其扩展为包含更多元素的列表?
这个问题基本上说明了一切。假设我有一个(排序的)列表,可以包含 1K 到 1M 的任何项目。我有一个starting index和一个ending index。如果我使用该ArrayList.sublist(start, end)方法,时间复杂度是 O(n) 还是 O(1)?我确实在这里检查了答案,因为我认为这是一个常见问题,但是虽然我找到了 LinkedList 的重复答案,但我找不到关于 ArrayList 的具体问题。感谢大家的回答!
我有一个包含数字的列表(子列表)列表,我只想保留所有(子)列表中存在的列表.
例:
x = [ [1, 2, 3, 4], [3, 4, 6, 7], [2, 3, 4, 6, 7]]
output => [3, 4]
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我希望有一个itertools功能,但我找不到一个.我希望Python从列表的每个子列表中选择一个项目,并维护顺序,与它们进行各种可能的组合.例如,希望如此
x = [[1,2,3],[1,2,3,4],[1,2,3,4,5]]
Run Code Online (Sandbox Code Playgroud)
可能成为
[[1,1,1],[1,1,2],[1,1,3],[1,1,4],[1,1,5],[1,2,1]...]
Run Code Online (Sandbox Code Playgroud)
并且此输出将包括每个子列表中的一个项目,因此[5,5,5]和[4,4,5]都不会包含在其中.此外,由于秩序很重要,而[3,4,5]可能在输出中,[5,4,3]不能.但是,当然,该方法应适用于原始列表中的所有数字和任何数字.
谢谢!
我有一个 SObject 列表,其中有 N 个项目/sObject SObject[] sList = [sobject1, sboject2, sboject3, ........ , sobjectN]
如何从列表开头仅获取 10 项
提前致谢!
我必须从Prolog中的列表中删除最长的质数序列。我是Prolog的新手,我找不到找到最长序列的方法...这是我到目前为止所做的:
divisible(X,Y):-
0 is X mod Y.
divisible(X,Y):-
X > Y + 1,
divisible(X,Y+1).
is_prime(2).
is_prime(3).
is_prime(P):-
integer(P),
P>3,
P mod 2 =\= 0,
not(divisible(P,3)).
Run Code Online (Sandbox Code Playgroud)
这将从列表中删除素数。
removeP([],[]).
removeP([H],[H]):-
not(is_prime(H)).
removeP([H|T],[H|L]):-
not(is_prime(H)),
removeP(T,L).
removeP([H|T],L):-
is_prime(H),
removeP(T,L).
Run Code Online (Sandbox Code Playgroud)
在这里,我试图找到最长的序列,但是我不知道下一步该怎么做。
longest([],[]).
longest([H],[H]):-
is_prime(H).
longest([H],[]):-
not(in_prime(H)).
longest([H|T],L):-
....
Run Code Online (Sandbox Code Playgroud) 如果我们有一个列表,每个项目可以有不同的长度.例如:
l <- list(c(1, 2), c(3, 4,5), c(5), c(6,7))
Run Code Online (Sandbox Code Playgroud)
(为了清楚起见,我们将在列表"items"中调用对象,并在列表"elements"的对象中调用对象.)
我们如何提取,例如每个项目的第一个元素?在这里,我想提取:
1, 3, 5, 6
Run Code Online (Sandbox Code Playgroud)
然后每个项目的第二个元素的相同问题:
2, 4, NA, 7
Run Code Online (Sandbox Code Playgroud) 我有以下数据列表
data1 = [[4,5,9],[4,7,2],[11,13,15]]
data2 = [[1,2,3,7],[3,6,8,5],[12,10,15,17]]
Run Code Online (Sandbox Code Playgroud)
我希望列表的合并完成如下.
data = [[4,5,9,1,2,3,7], [4,7,2,3,6,8,5], [11,13,15,12,10,15,17]]
Run Code Online (Sandbox Code Playgroud)
即合并data1和data2中索引0处的元素,合并data1和data2中索引1处的元素,依此类推.
data1 = [[4,5,9],[4,7,2],[11,13,15]]
data2 = [[1,2,3,7],[3,6,8,5],[12,10,15,17]]
for i in range (0,2):
for j in range(0,3):
data1[i].extend(data2[j])
print(data1)
Run Code Online (Sandbox Code Playgroud) 我需要比较两个基本上是列表列表的列表,找出存在于一个列表中但没有其他列表的子列表。子列表的排列也没有考虑,即['a','b'] = ['b,'a']。这两个列表是
List_1 = [['T_1','T_2'],['T_2','T_3'],['T_1','T_3']]
List_2 = [['T_1','T_2'],['T_3','T_1']]
Run Code Online (Sandbox Code Playgroud)
输出列表应为
out_list = [['T_2','T_3']]
Run Code Online (Sandbox Code Playgroud) 给定这些子列表
lst=[['a', 'b', 'c', 'd', 'e'], ['f', 'g', 'h']]
Run Code Online (Sandbox Code Playgroud)
我试图找到其元素的位置,例如,字母“a”位于 0,0 但这一行
print(lst.index('a'))
Run Code Online (Sandbox Code Playgroud)
相反会产生以下错误: ValueError: 'a' is not in list
sublist ×10
list ×7
python ×6
algorithm ×1
apex ×1
apex-code ×1
arraylist ×1
duplicates ×1
java ×1
nested-lists ×1
prolog ×1
r ×1
recursion ×1
salesforce ×1
vector ×1