BuPython'da, bir listeyi başka bir listeyle nasıl dizinlerim?
L = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
Idx = [0, 3, 7]
T = L[ Idx ]
gibi indeksine bir listesini içeren bir listeyi istiyorum ve T içeren bir liste [ 'a', 'd', 'h'] olarak sona gerekir.
sen numpy kullanıyorsanız, böyle genişletilmiş dilimleme gerçekleştirebilirT = []
for i in Idx:
T.append(L[i])
print T
# Gives result ['a', 'd', 'h']
Bu, bir döngüden daha mı hızlı mı yoksa yalnızca daha kısa mı? –
@daniel: hem + önerilir – SilentGhost
Hızlı bir zamanlama testi (pysco veya başka bir şey, bu yüzden ne yaparsanız yapın) liste kavramasını döngüden 2.5 kat daha hızlı gösterdi (1000 eleman, tekrarlanan 10000 kere). –