Я пытаюсь научиться аккуратно вещий способы делать вещи, и было интересно, почему мой цикл не может быть переработан таким образом:Инлайн цикл
q = [1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5]
vm = [-1, -1, -1, -1]
for v in vm:
if v in q:
p.append(q.index(v))
else:
p.append(99999)
vm[p.index(max(p))] = i
Я попытался заменить для цикла с:
[p.append(q.index(v)) if v in q else p.append(99999) for v in vm]
Но это не работает. Цикл for v in vm:
выдает номера от vm
на основе того, когда они будут следующими в q
.
Вы можете захотеть использовать - 1 вместо 99999 для отметки несуществующего значения (так что это будет работать даже для списка с элементами 99999+) –
вы перечислите comprehsnsion, но он вернет списки None too – Hackaholic
Я использовал 99999 вместо -1, потому что позже я побежал следует выбрать max (p) и несуществующие значения. – Will