Skip to main content
 首页 » 编程设计

python之在 Python 列表中查找元素的有效方法

2025年05月04日16wuhuacong

我有一个目录中的文件列表。我必须只处理该目录中的某些文件。 filelist 是我想要的文件列表。我该如何实现这一目标?对 bash 解决方案不感兴趣,因为我必须在这个 Python 脚本中完成所有工作。非常感谢!

for record in result: 
    filelist.append(record[0]) 
 
print filelist 
 
 
for file in os.listdir(sys.argv[1].strip() + "/"): 
    for file in filelist: #This doesn't work, how else do I do this? If file equals to my desired file-list, then do something. 
        print file 

抱歉,我不知道我是怎么错过的!我猜是清晨编码!模组们,请关闭它,除非有人想以一种有效的方式参与其中。

for file in os.listdir(sys.argv[1].strip() + "/"): 
    if file in filelist: 
        print file 

请您参考如下方法:

如果顺序和唯一性无关紧要,您可以使用 set 交集,这会更有效率。

import set 
os_list = os.listdir(sys.argv[1].strip() + "/") 
for file in set(os_list) & set(filelist): 
    #... 

改进示例:

import random 
import timeit 
 
l = [random.randint(1,10000) for i in range(1000)] 
l2 = [random.randint(1,10000) for i in range(1000)] 
 
def f1(): 
    l3 = [] 
    for i in l: 
        if i in l2: 
            l3.append(i) 
    return l3 
 
def f2(): 
    l3 = [] 
    for i in set(l) & set(l2): 
        l3.append(i) 
    return l3 
 
t1 = timeit.Timer('f1()', 'from __main__ import f1') 
print t1.timeit(100) #2.0850549985 
 
t2 = timeit.Timer('f2()', 'from __main__ import f2') 
print t2.timeit(100) #0.0162533142857