Ich würde sagen, die einfachste Lösung besteht darin, zwei Bereiche mit dem *Entpackungsoperator in eine Liste zu entpacken :
>>> [*range(6, 10), *range(-9, -5)]
[6, 7, 8, 9, -9, -8, -7, -6]
Dies ist nicht nur die kürzeste vorgeschlagene Antwort, sondern auch die performanteste, da nur eine einzige Liste erstellt wird und keine Funktionsaufrufe über die beiden hinausgehen range.
Ich habe dies überprüft, indem ich alle Antworten dieser Frage mit dem timeitModul getestet habe :
Antwort ID Methode timeit Ergebnis
-------------------------------------------------- ------------------------------------------------
(in Frage) [x für x im Bereich (6,10)] + [y für y im Bereich (-9, -5)] 0,843 usec pro Schleife
(diese Antwort) [* Bereich (6, 10), * Bereich (-9, -5)] 0,509 usec pro Schleife
61348876 [y für x im Bereich (6,10) für y in (x, -x)] 0,754 usec pro Schleife
61349149 list (range_with_negatives (6, 10)) 0,795 usec pro Schleife
61348914 Liste (itertools.chain (Bereich (6, 10), Bereich (-9, -5))) 0,709 usec pro Schleife
61366995 [Vorzeichen * x für Vorzeichen, x in itertools.product ((- 1, 1), Bereich (6, 10))] 0,899 usec pro Schleife
61371302 Liste (Bereich (6, 10)) + Liste (Bereich (-9, -5)) 0,729 usec pro Schleife
61367180 Liste (range_with_negs (6, 10)) 1,95 usec pro Schleife
(Timeit-Tests mit Python 3.6.9 auf meinem eigenen Computer durchgeführt (durchschnittliche Spezifikationen))