mk wrote:
mk wrote:
Hello everyone,
I have two lists of IP addresses:
hostips = [ 'a', 'b', 'c', 'd', 'e' ]
thread_results = [ 'd', 'b', 'c' ]
I need to sort thread_results in the same order as hostips.
P.S. One clarification: those lists are actually more complicated
(thread_result is a list of tuples (ip, thread)), which is why I need
thread_results sorted in order of hostips (instead of just
constructing [ h for h in hostips if h in thread_results ] and be done
with it).
Could be easily done by changing the thread_results structure. You seems
to want to lookup using ips:
thread_results = {'ip1':['t1','t2','t3'], 'ip3':['t4','t8']} # tx are
threads
results = []
for ip in hostips:
results += [(ip, thread) for thread in thread_results.get(ip, [])]
>>> print results
Out[10]: [('ip1', 't1'), ('ip1', 't2'), ('ip1', 't3'), ('ip3', 't4'),
('ip3', 't8')]
In a general manner, if you end up with duplicated informations inside
your structures (like ips in you thread_results structure) that means
you'll need sooner or later to do additional loop work to factorize the
data.
JM
--
http://mail.python.org/mailman/listinfo/python-list