listA の項目を ListB の項目にマップするディクショナリを作成するのは簡単です。Python >= 2.7 を使用している場合は、辞書内包表記を使用できます (そうでない場合は、dict
同じことを達成するために使用する他の回答を参照してください)。
listA = [ 3, 4, 5, 7]
ListB = ['Z2 O95409 V595 **p.His3Leu** Dase - Hophaly type 5 (HPE5) [609637]', 'Z2 O95409 V595 **p.His4Leu** Dase - Hophaly type 5 (HPE5) [609637]', 'Z2 O95409 V595 **p.His5Leu** Dase - Hophaly type 5 (HPE5) [609637]', 'Z2 O95409 V595 **p.His7Leu** Dase - Hophaly type 5 (HPE5) [609637]' ]
d = { a:b for a, b in zip(listA, ListB) }
from pprint import pprint
pprint(d)
{3: 'Z2 O95409 V595 **p.His3Leu** Dase - Hophaly type 5 (HPE5) [609637]',
4: 'Z2 O95409 V595 **p.His4Leu** Dase - Hophaly type 5 (HPE5) [609637]',
5: 'Z2 O95409 V595 **p.His5Leu** Dase - Hophaly type 5 (HPE5) [609637]',
7: 'Z2 O95409 V595 **p.His7Leu** Dase - Hophaly type 5 (HPE5) [609637]'}
ただし、あなたの要件を考慮して、タンパク質名とその完全な説明を参照できる辞書の辞書を提案します.
d = { a: {'protein': b.split('**')[1], 'description': b} for a, b in zip(listA, ListB) }
pprint(d)
{3: {'description': 'Z2 O95409 V595 **p.His3Leu** Dase - Hophaly type 5 (HPE5) [609637]',
'protein': 'p.His3Leu'},
4: {'description': 'Z2 O95409 V595 **p.His4Leu** Dase - Hophaly type 5 (HPE5) [609637]',
'protein': 'p.His4Leu'},
5: {'description': 'Z2 O95409 V595 **p.His5Leu** Dase - Hophaly type 5 (HPE5) [609637]',
'protein': 'p.His5Leu'},
7: {'description': 'Z2 O95409 V595 **p.His7Leu** Dase - Hophaly type 5 (HPE5) [609637]',
'protein': 'p.His7Leu'}}
これで、次のようなルックアップを実行できます。
>>> print d[3]['protein']
p.His3Leu
>>> print d[3]['description']
Z2 O95409 V595 **p.His3Leu** Dase - Hophaly type 5 (HPE5) [609637]