У меня есть функция, которая создает список аминокислот (aaCandidates), но этот список может даже быть пустым. Если этот список пуст, я хотел бы перейти к шагу и продолжить его.Как обрабатывать пустой список, python3
Мой код:
def magicfunction(referenceDistance,referenceAA):
amminoacids = ('A', 'R', 'N', 'D', 'C', 'Q', 'E', 'G', 'H', 'I', 'L', 'K', 'M', 'F', 'P', 'S', 'T', 'W', 'Y', 'V')
aaCandidates = list()
for aa in amminoacids:
if distance(aa,referenceAA) == referenceDistance:
aaCandidates.append(aa)
if not aaCandidates:
break
luckyAA = choice(aaCandidates)
return(luckyAA)
Я называю эту функцию в другом файле, как следующие:
for i in range(lenghtPairs):
r1 = randrange(20)
r2 = randrange(20)
coppie.append([aminoacidi[r1], aminoacidi[r2]])
for i in range(lenghtPairs):
dictionary = dict()
frequenze = dict()
if i == 0:
a = randrange(20)
b = randrange(20)
pairs[0] = [aminoacids[a], aminoacids[b]]
else:
c = randrange(20)
pairs[i][0] = aminoacids[c]
distanceNeighbours = distance(pairs[i][0],pairs[i-1][0])
aaChosen = magicfunction(distanceNeighbours,pairs[i-1][1])
pairs[i][1] = aaChosen
print(i + 1)
Я попробовал условие =>if not aaCandidates: break
, но это не сработало:
File "/.../lib/python3.4/random.py", line 255, in choice
raise IndexError('Cannot choose from an empty sequence')
IndexError: Cannot choose from an empty sequence
Define * не работает * более близко. Вы имеете в виду, что вызов 'random.choice()' вызывает исключение? –
Обратите внимание, что гораздо чаще (и естественно) использовать '[]' для определения пустого списка и '{}' для пустого словаря, а не 'list()' и 'dict()'. –
если "len (aaCandidates) == 0"? –