【发布时间】:2016-05-24 15:39:26
【问题描述】:
我是 Python 新手,目前正在解决问题以提高我的编码技能。我遇到了一个问题,我需要在 python 中从 3 Lists 中找到共同元素并打印共同元素的数量。
我的代码和程序如下:
print "Enter n: "
n = raw_input()
print "Enter the values: "
nlist = map(int, raw_input().split())
print "Enter m: "
m = raw_input()
print "Enter the values: "
mlist = map(int, raw_input().split())
print "Enter k: "
k = raw_input()
print "Enter the values: "
klist = map(int, raw_input().split())
plist = []
qlist = []
for x in range(0,int(n)):
for y in range(0,int(m)):
if (nlist[x]==mlist[y]):
plist.append(nlist[x])
for z in range(0,int(k)):
for u in range(0,len(plist)):
if (klist[z]==plist[u]):
qlist.append(klist[z])
print len(qlist)
首先,我从前两个Lists - nlist and mlist中找到共同的元素,并将它们存储在一个新的List - plist中,然后取出第三个List - klist,在Lists - plist and klist中找到共同的元素,并将它们添加到一个新的List - qlist 并找到了最终 List 的长度。我在想,如果Lists 的长度非常高,比如 4000 和运行 4000 次迭代的两个 for 循环,根据我的理解,这会很耗时。那么如何优化此类问题,解决此类问题的更好方法是什么,以及可以使用哪些方法来改进代码,提高性能并在更短的时间内产生输出。请帮助我理解这一点。提前致谢。非常感谢您的帮助。
【问题讨论】:
标签: python performance for-loop optimization