Indexowanie obiektów SeqRecord w liście

0

Witam,
chciałbym otrzymać listę indexów dla SeqRecord znajdujących się w liście f.
Próbowałem zrobić tak:

for x in f:
    ind = f.index(x)
    print(ind)

Ale otrzymałem błąd:

0
Traceback (most recent call last):

File "C:\Users\...", line 43, in <module>
ind = f.index(x)

File "C:\Users\...\anaconda3\lib\site-packages\Bio\SeqRecord.py", line 803, in __eq__
raise NotImplementedError(_NO_SEQRECORD_COMPARISON)

NotImplementedError: SeqRecord comparison is deliberately not implemented. Explicitly compare the 
attributes of interest.

Dziękuje za każdą odpowiedź

0

https://docs.python.org/3/library/exceptions.html (ctr - f notimple)
Daj cały kod.

0

Posiadam listę f, w której są obiekty:

[SeqRecord(seq=Seq('CCCGGGKKGGGKACTGCGGGAGGWCATTGTCGAACCTGCCCGACAGAGCGACCC...GAA', IUPACAmbiguousDNA()), id='BIE-1_ITS5', name='BIE-1_ITS5_F', description='', dbxrefs=[]), SeqRecord(seq=Seq('GCGTGKGRAKACTGCGAGAGGWCATTGTCGAACCTGCCCGACAGAGCGACCCGC...AAA', IUPACAmbiguousDNA()), id='BIE-2_ITS5', name='BIE-2_ITS5_F', description='', dbxrefs=[]), SeqRecord(seq=Seq('GCGGGTGGAKACTGCGGAGGWCATTGTCGAACCTGCCCGACAGAGCGACCCGCG...AAA', IUPACAmbiguousDNA()), id='BIE-3_ITS5', name='BIE-3_ITS5_F', description='', dbxrefs=[])]

I dla tej listy chciałbym dostać indexy. Dla zwykłej listy ten kod działa, ale dla listy z obiektami SeqRecord mam problem.

0

Bo one nie mają zaimplementowanego porównania, metoda index, bierze element i znajduje jego miejsce, a do tego musi mieć porządek w obiektach, a go nie ma co mówi wyjątek. A nie Możesz drukować soie numerów tych elementów po kolei (enumerate):

for i, _ in enumerate(f):
    print(i)
0

Bardzo dziękuję, wszystko działa jak należy

1 użytkowników online, w tym zalogowanych: 0, gości: 1