Для лучшей формулировки приведу сразу код.
import os
class A:
_index = 0
_value = 0
def findValue(ar,ind):
l = []
b = 0
for i in ar:
if i._index == ind:
b += 1
l.append(i._value)
if b == 0:
return []
else:
return l
arr = []
for i in range(10):
tmpA = A()
tmpA._index = os.urandom(2).encode('hex').upper()
tmpA._value = os.urandom(32).encode('hex').upper()
print 'i =',tmpA._index,'v =',tmpA._value
arr.append(tmpA)
del tmpA
Запускаем, получая массив arr
(пример случайный):
A4CC 0E125E7CE7D1474B9600F50BDF7B03169FF2B7392D3218F30B2403A34ED5E81D
B59B 1ADAE39612D0BD30EAE8D186F2CEED7EA144874EBFD022D850204F748E555D1E
5258 CB004CFCD8BC8A0EC0E6C45119DD70FD859BECDFC367BA9F8294D862ED07585D
63DF FB12F4020BE62351C6F87BA170CA1A945AEFF6C1DA12B0C8F4356F0CDC6729A4
2FF4 2B44AE2E462361FEFEE5251275F4329A327B8D2CCE24C0A2A1BB3E95E522B217
A2EF B8DC1FD47FB12A1AF74F44B2176F3B508A9748183E49FD1E4474027FE6DD39F9
ADBE 442C12FD91FAB2EA668CAD336EF5F7B97D3953E7362DCDE50C74D965CB86BE59
581D FE47CBE6A3F91F020C531A568F5D047CEABD0B95C00933370B59D4B126336555
D572 FED36C1198DDE66A62B40DF90529EEFD2AD3F5298490D84FFD4DBA5CEE5A16C8
EBFE 4A6511059AB17DF2FC4432260C527885760233527D9CF6349AA307DF2BB80F48
Далее, вызываем функцию findValue
:
findValue(arr,'2FF4')
Получаем:
['2B44AE2E462361FEFEE5251275F4329A327B8D2CCE24C0A2A1BB3E95E522B217']
Вопрос. Как реализовать функцию findValue
оптимальным способом, т.е. без перебора массива arr
? Можно ли как-то обращаться по _index
?
То есть интересует способ, который будет быстрее. Спасибо
Свежие комментарии