簡體   English   中英

比較Python中字符串元素的最快方法

[英]Fastest way of comparison of string elements in Python

我正在尋找比較python中字符串元素的最快方法。

import os, glob, numpy as np

with open ('fname.txt','r') as fi:   ##This infile contains 9 thousands of string elements
    all_list = fi.read().splitlines()

existing_list = glob.glob('*jpg') ##This contains 5 thousands elements
existing_list = [os.path.basename(f) for f in existing_list]

remaining_list = [f for f in all_list if f not in existing_list]
for i in remaining list:
    print i

如何在Numpy中執行?

all_list = np.array(all_list)
existing_list = np.array(existing_list)
remaining_list = ???

如果使用集合,則可以在不使用numpy的情況下對其進行優化:

existing_set = {os.path.basename(f) for f in existing_list}  # set comprehension, python2.7+
# alternatively:  set(os.path.basename(f) for f in existing_list)

remaining_list = [f for f in all_list if f not in existing_set]

我懷疑即使您想出一種方法也可以通過使用numpy來獲得很多性能...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM