On Sun, 05 Nov 2006 21:43:33 +0000, djc wrote:
> There is I am sure an easy way to do this, but I seem to be brain dead
> tonight. So:
>
> I have a table such that I can do
>
> [line for line in table if line[7]=='JDOC']
> and
> [line for line in table if line[7]=='Aslib']
> and
> [line for line in table if line[7]=='ASLIB']
> etc
>
> I also have a dictionary
> r= {'a':('ASLIB','Aslib'),'j':('JDOC', 'jdoc')}
> so I can extract values
> r.values()
> [('ASLIB', 'Aslib'), ('JDOC', 'jdoc')]
>
> I would like to do
>
> [line for line in table if line[7] in ('JDOC','jdoc','Aslib','ASLIB')]
What is the purpose of the "if line[7]" bit?
> so how should I get from
> {'a':('ASLIB','Aslib'),'j':('JDOC','jdoc')}
> to
> ('Aslib','ASLIB','JDOC','jdoc')
Assuming you don't care what order the strings are in:
r = {'a':('ASLIB','Aslib'),'j':('JDOC','jdoc')}
result = sum(r.values(), ())
If you do care about the order:
r = {'a':('ASLIB','Aslib'),'j':('JDOC','jdoc')}
keys = r.keys()
keys.sort()
result = []
for key in keys:
result.extend(r[key])
result = tuple(result)
--
Steven.
--
http://mail.python.org/mailman/listinfo/python-list