Я бы лично пошел со словарем:
records = [
['george', 'williams', '277389', 'susan thompson', '2042228888'],
['john', 'smith', '833999', 'george smith', '2041118833'],
['michael', 'jackson', '281038', 'ronald jackson', '2041128493'],
]
from operator import itemgetter
recordsbyid = dict(zip(map(itemgetter(2),records),records))
, тогда вы можете сделать
>>> recordsbyid['277389']
['george', 'williams', '277389', 'susan thompson', '2042228888']
itemgetter
выбирает второй элемент (id), map
применяется к каждомуrecord, а zip
объединяет идентификаторы с их записями в список кортежей, состоящий из (id, record).dict
превращает это в словарь.