Angesichts des folgenden Codes von Leetcode:
Code: Select all
def combine(self, n: int, k: int) -> List[List[int]]:
combs = [[]]
for _ in range(k):
combs = [[i] + c for c in combs for i in range(1, c[0] if c else n+1)]
return combs
Wie würde man vorgehen, um die innere Kämme-Schleife für bessere Lesbarkeit zu erweitern? Ich habe es unten versucht, erhalte jedoch Fehlermeldungen bezüglich der Indizierung außerhalb der Grenzen mit dem c[0]-Teil, sodass ich weiß, dass ich etwas falsch mache, aber ich konnte in ähnlichen Fragen zum Listenverständnis keinen finden, der dafür ziemlich ähnlich genug ist, um zu wissen, was ich tatsächlich falsch mache.
Code: Select all
for c in combs:
if c:
for i in range(1, c[0]):
combs.extend([i] + c)
else:
for i in range(1, n+1):
combs.extend([i] + c)
Irgendwelche Ideen?