假设我有两个列表,l1并且l2.我想执行l1 - l2,返回所有l1不在的元素l2.
我可以想到一个简单的循环方法来做到这一点,但这将是非常低效的.什么是pythonic和有效的方法呢?
举个例子,如果我有l1 = [1,2,6,8] and l2 = [2,3,5,8],l1 - l2应该回来[1,6]
让我们说我有一个图表,想看看是否b in N[a].哪个更快实现,为什么?
a, b = range(2)
N = [set([b]), set([a,b])]
Run Code Online (Sandbox Code Playgroud)
要么
N= [[b],[a,b]]
Run Code Online (Sandbox Code Playgroud)
这显然过于简单,但想象图表变得非常密集.
您好,有人能告诉我如何在此代码中实现Eratosthenes筛选以使其快速?如果你能用筛子完成它,将非常感谢帮助.在这个特定的代码中,我真的遇到了麻烦.
#!/usr/bin/env python
import sys
T=10 #no of test cases
t=open(sys.argv[1],'r').readlines()
import math
def is_prime(n):
if n == 2:
return True
if n%2 == 0 or n <= 1:
return False
sqr = int(math.sqrt(n)) + 1
for divisor in range(3, sqr, 2):
if n%divisor == 0:
return False
return True
#first line of each test case
a=[1,4,7,10,13,16,19,22,25,28]
count=0
for i in a:
b=t[i].split(" ")
c=b[1].split("\n")[0]
b=b[0]
for k in xrange(int(b)):
d=t[i+1].split(" ")
e=t[i+2].split(" ")
for g in d:
for j …Run Code Online (Sandbox Code Playgroud) 我有一个名为的父列表parent_list,以及我要过滤的两个子集parent_list.这些子集也是python列表,它们被称为filter1和filter2.
我可不可以做:
final_list = [object for object in parent_list if object.pk not in filter1 or filter2]
Run Code Online (Sandbox Code Playgroud)
或者我是否需要单独进行此过滤,如:
intermediate_list = [object for object in parent_list if object.pk not in filter1]
final_list = [object for object in intermediate_list if object.pk not in filter2]
Run Code Online (Sandbox Code Playgroud)
我无法从python列表推导的文档中明确找到答案.
我决定学习python,我使用CodeFight进行训练.第一次采访练习是关于找到数组的第一个副本并返回它或者如果没有则返回-1.这是我写的代码:
def firstDuplicate(a):
b=[]
print(len(a))
for i in range(len(a)):
if a[i] in b:
return(a[i])
elif a[i] not in b and i == (len(a)-1):
return(-1)
else:
b.append(a[i])
Run Code Online (Sandbox Code Playgroud)
我通过除了最后3个以外的所有测试.我说我的程序执行时间超过4000毫秒.我猜数组很长,副本就在最后.如何减少执行时间?提前致谢.