<div dir="ltr">In the example i have given, the second and third elements of the larger list (comp[7] and comp[8]) have a 1:1 mapping after the second element. So i would like to keep the first element as it is and then collapse or merge the second and third elements (comp[7] and comp[8]) into a single element:<div>
<br></div><div><span class="Apple-style-span" style="border-collapse:collapse;font-family:arial,sans-serif;font-size:13px"><div>>>> comp[6]</div><div>['6558', 'NM_001046.2', 'SLC12A2', '6037226', '2', 'chr5', '127502453', '127502454', 'het-ref', 'snp', 'A', 'T', 'A', '185', '113', '184', '112', 'VQHIGH', 'VQHIGH', '', '', '', '', '259974', '9', '6', '6', '15', '6558:NM_001046.2:SLC12A2:CDS:MISSENSE', '6558:NM_001046.2:SLC12A2:CDS:NO-CHANGE', 'PFAM:PF01490:Aa_trans', '', '', '', '0.99', '2', '0.99', '0.998', '1.01', '1.000', '0.5', '0.46', '0.5', '1', '18', '18', '19', 'ref-identical;onlyA', 'snp', '0.072', '-1', 'SQHIGH']</div>
<div><br></div></span><span class="Apple-style-span" style="border-collapse:collapse;font-family:arial,sans-serif;font-size:13px"><div>>>> comp[7]</div><div>['1302', 'NM_080679.2', 'COL11A2', '6525172', '2', 'chr6', '33271374', '33271376', 'het-ref', 'del', 'GT', '', 'GT', '542', '542', '458', '458', 'VQHIGH', 'VQHIGH', '', '', '', '', '71150', '34', '106', '106', '140', '1302:NM_080679.2:COL11A2:TSS-UPSTREAM:UNKNOWN-INC', '1302:NM_080679.2:COL11A2:TSS-UPSTREAM:UNKNOWN-INC;1302:NM_080680.2:COL11A2:TSS-UPSTREAM:UNKNOWN-INC;1302:NM_080681.2:COL11A2:TSS-UPSTREAM:UNKNOWN-INC;6257:NM_021976.3:RXRB:CDS:NO-CHANGE', '', '', '', '', '0.95', '2', '0.98', '0.998', '0.99', '1.000', '0.46', '0.42', '0.5', '0', '102', '102', '102', 'ref-identical;onlyA', 'del', '0.990', '6', 'SQHIGH']</div>
<div><br></div><div>>>> comp[8]</div><div>['1302', 'NM_080680.2', 'COL11A2', '6525172', '2', 'chr6', '33271374', '33271376', 'het-ref', 'del', 'GT', '', 'GT', '542', '542', '458', '458', 'VQHIGH', 'VQHIGH', '', '', '', '', '71150', '34', '106', '106', '140', '1302:NM_080680.2:COL11A2:TSS-UPSTREAM:UNKNOWN-INC', '1302:NM_080679.2:COL11A2:TSS-UPSTREAM:UNKNOWN-INC;1302:NM_080680.2:COL11A2:TSS-UPSTREAM:UNKNOWN-INC;1302:NM_080681.2:COL11A2:TSS-UPSTREAM:UNKNOWN-INC;6257:NM_021976.3:RXRB:CDS:NO-CHANGE', '', '', '', '', '0.95', '2', '0.98', '0.998', '0.99', '1.000', '0.46', '0.42', '0.5', '0', '102', '102', '102', 'ref-identical;onlyA', 'del', '0.990', '6', 'SQHIGH']</div>
<div><br></div><div>After collapsing comp[7] and comp[8] i  get:</div><div><br></div><div>>>> collapsed = ['1302', 'NM_080679.2,NM_080680.2', 'COL11A2', '6525172', '2', 'chr6', '33271374', '33271376', 'het-ref', 'del', 'GT', '', 'GT', '542', '542', '458', '458', 'VQHIGH', 'VQHIGH', '', '', '', '', '71150', '34', '106', '106', '140', '1302:NM_080680.2:COL11A2:TSS-UPSTREAM:UNKNOWN-INC', '1302:NM_080679.2:COL11A2:TSS-UPSTREAM:UNKNOWN-INC;1302:NM_080680.2:COL11A2:TSS-UPSTREAM:UNKNOWN-INC;1302:NM_080681.2:COL11A2:TSS-UPSTREAM:UNKNOWN-INC;6257:NM_021976.3:RXRB:CDS:NO-CHANGE', '', '', '', '', '0.95', '2', '0.98', '0.998', '0.99', '1.000', '0.46', '0.42', '0.5', '0', '102', '102', '102', 'ref-identical;onlyA', 'del', '0.990', '6', 'SQHIGH']<br>
</div><div><br></div><div>So in my larger list, after the modification, comp[6] is the first element and collapsed the second element. </div><div>>>> </div></span></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Thu, Dec 5, 2013 at 5:22 AM, Martin Falatic <span dir="ltr"><<a href="mailto:martin@falatic.com" target="_blank">martin@falatic.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Ah, genetics! Intriguing...<br>
<br>
Do you need anything beyond the third elements of each list? Does the<br>
third element always map 1:1 with the first, or could it vary? If so, what<br>
then?<br>
<br>
To refer to the simplified example, could you have this?<br>
x = [['cat', 'NM123', 12], ['cat', 'NM234', 43], ['dog', 'NM56', 65]]<br>
<br>
If so, what is the expected output?<br>
<br>
 - Marty<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
<br>
On Thu, December 5, 2013 02:11, Vikram K wrote:<br>
> i am having some difficulty in applying this to my actual problem<br>
> although i love the dictionary method. Imagine the following three lists<br>
> are the first, second and third elements of a larger list:<br>
><br>
>>>> comp[6]<br>
> ['6558', 'NM_001046.2', 'SLC12A2', '6037226', '2', 'chr5', '127502453',<br>
> '127502454', 'het-ref', 'snp', 'A', 'T', 'A', '185', '113', '184', '112',<br>
> 'VQHIGH', 'VQHIGH', '', '', '', '', '259974', '9', '6', '6', '15',<br>
> '6558:NM_001046.2:SLC12A2:CDS:MISSENSE',<br>
> '6558:NM_001046.2:SLC12A2:CDS:NO-CHANGE', 'PFAM:PF01490:Aa_trans', '', '',<br>
>  '', '0.99', '2', '0.99', '0.998', '1.01', '1.000', '0.5', '0.46', '0.5',<br>
>  '1', '18', '18', '19', 'ref-identical;onlyA', 'snp', '0.072', '-1',<br>
> 'SQHIGH']<br>
><br>
><br>
>>>> comp[7]<br>
> ['1302', 'NM_080679.2', 'COL11A2', '6525172', '2', 'chr6', '33271374',<br>
> '33271376', 'het-ref', 'del', 'GT', '', 'GT', '542', '542', '458', '458',<br>
> 'VQHIGH', 'VQHIGH', '', '', '', '', '71150', '34', '106', '106', '140',<br>
> '1302:NM_080679.2:COL11A2:TSS-UPSTREAM:UNKNOWN-INC',<br>
> '1302:NM_080679.2:COL11A2:TSS-UPSTREAM:UNKNOWN-INC;1302:NM_080680.2:COL11A<br>
> 2:TSS-UPSTREAM:UNKNOWN-INC;1302:NM_080681.2:COL11A2:TSS-UPSTREAM:UNKNOWN-<br>
> INC;6257:NM_021976.3:RXRB:CDS:NO-CHANGE',<br>
> '', '', '', '', '0.95', '2', '0.98', '0.998', '0.99', '1.000', '0.46',<br>
> '0.42', '0.5', '0', '102', '102', '102', 'ref-identical;onlyA', 'del',<br>
> '0.990', '6', 'SQHIGH']<br>
><br>
><br>
>>>> comp[8]<br>
> ['1302', 'NM_080680.2', 'COL11A2', '6525172', '2', 'chr6', '33271374',<br>
> '33271376', 'het-ref', 'del', 'GT', '', 'GT', '542', '542', '458', '458',<br>
> 'VQHIGH', 'VQHIGH', '', '', '', '', '71150', '34', '106', '106', '140',<br>
> '1302:NM_080680.2:COL11A2:TSS-UPSTREAM:UNKNOWN-INC',<br>
> '1302:NM_080679.2:COL11A2:TSS-UPSTREAM:UNKNOWN-INC;1302:NM_080680.2:COL11A<br>
> 2:TSS-UPSTREAM:UNKNOWN-INC;1302:NM_080681.2:COL11A2:TSS-UPSTREAM:UNKNOWN-<br>
</div></div><div class="HOEnZb"><div class="h5">> INC;6257:NM_021976.3:RXRB:CDS:NO-CHANGE',<br>
> '', '', '', '', '0.95', '2', '0.98', '0.998', '0.99', '1.000', '0.46',<br>
> '0.42', '0.5', '0', '102', '102', '102', 'ref-identical;onlyA', 'del',<br>
> '0.990', '6', 'SQHIGH']<br>
><br>
>>>><br>
><br>
> ------<br>
> Can we apply the dictionary method to the problem where the key of the<br>
> dictionary is the first element of the three smaller lists ('6558','1302',<br>
>  '1302'). The second and third elements of the larger list (starting with<br>
>  '1302') need to be collapsed into a single element, based on their<br>
> second element ( 'NM_080679.2') and ('NM_080680.2') in a way similar to<br>
> how we had tackled the toy problem:<br>
><br>
> x = [['cat', 'NM123', 12], ['cat', 'NM234', 12], ['dog', 'NM56', 65]]<br>
><br>
><br>
><br>
><br>
><br>
><br>
><br>
> On Thu, Dec 5, 2013 at 4:18 AM, Michiel Overtoom <<a href="mailto:motoom@xs4all.nl">motoom@xs4all.nl</a>><br>
> wrote:<br>
><br>
><br>
>><br>
>> On Dec 5, 2013, at 10:09, Vikram K wrote:<br>
>><br>
>><br>
>>> another option could have been to obtain a dictionary like so: {'dog':<br>
>>> ['NM56', 65], 'cat': ['NM123,NM234', 12]}<br>
>>><br>
>><br>
>> Oh, in that case the code can become somewhat simpler:<br>
>><br>
>><br>
>> x = [['cat', 'NM123', 12], ['cat', 'NM234', 12], ['dog', 'NM56', 65]]<br>
>><br>
>> d = {} for key, label, quant in x: if key in d: d[key][0] += ", " + label<br>
>> else:<br>
>> d[key] = [label, quant]<br>
>><br>
>> print d<br>
>><br>
>><br>
>> I agree with Michael that the problem is somewhat underspecified, but<br>
>> it's a starting point.<br>
>><br>
>> Greetings,<br>
>><br>
>><br>
>> --<br>
>> "If you don't know, the thing to do is not to get scared, but to learn."<br>
>> -<br>
>> Ayn Rand<br>
>><br>
>><br>
>><br>
>><br>
>><br>
</div></div><div class="HOEnZb"><div class="h5">> _______________________________________________<br>
> Baypiggies mailing list<br>
> <a href="mailto:Baypiggies@python.org">Baypiggies@python.org</a><br>
> To change your subscription options or unsubscribe:<br>
> <a href="https://mail.python.org/mailman/listinfo/baypiggies" target="_blank">https://mail.python.org/mailman/listinfo/baypiggies</a><br>
<br>
<br>
</div></div></blockquote></div><br></div>