我有類Person像下面的對象的陣列,與thisRate
第一組到None
:比循環查找數據更快或更好?
class Person(object):
def __init__(self, id, name):
self.id = id
self.name = name
self.thisRate= None
予加載周圍21K Person
對象到一個數組,name
沒有排序。
然後我加載從數據的另一陣列,其中具有數據thisRate
,其中約13K的文件時,name
未排序,以及:與這些2臺陣列,
person_data = []
# read from file
row['name'] = 'Peter'
row['thisRate'] = '0.12334'
person_data.append(row)
現在,當name
在它們之間匹配,我將從person_data
分配thisRate
到Person.thisRate
。
什麼我做的是一個循環是這樣的:
for person in persons:
data = None
try:
data = next(personData for personData in person_data
if personData['name'] == person.name)
except StopIteration:
print("No rate for this person: {}".format(person.name))
if data:
person.thisRate = float(data['thisRate'])
這個循環
data = next(personData for personData in person_data
if personData['name'] == person.name)
運行良好,我的機器上使用21秒與Python 2.7.13。
我的問題是,有沒有更快或更好的方法來實現與我有2陣列相同的事情?
當你說數組,你的意思名單? –
肯定列表,在後編輯。 –