2016-06-27 13 views
-3

Ich verstehe nicht die Verwendung der mehreren Bereiche in der for-Schleife wie folgt.Verwenden mehrerer Bereiche mit der For-Schleife in PYTHON

for n in range(1,21) + range(30,100,10): 
    # do something 

Ich googelte, aber immer noch nicht herausfinden. Jede Hilfe wäre willkommen.

+1

Was genau verwirrt Sie? – vaultah

+0

Der Begriff 'Bereich (a, b) + Bereich (c, d, e)' macht mich verwirrt. –

+4

@TungLe wenn 'Bereich (1,21) + Bereich (30,100,10)' verwirrt Sie dann versuchen 'Druckbereich (1,21) + Bereich (30,100,10)' und sehen, was es Ihnen gibt, das würde wahrscheinlich klar deine Verwirrung ohne die Notwendigkeit, hier zu fragen. –

Antwort

3

In Python 2.7 können Sie range s hinzufügen, da das Ergebnis der can be addedrange(something)is a list und Listen Aufruf eine neue Liste zu produzieren:

>>> range(5) 
[0, 1, 2, 3, 4] 

>>> range(8,12) 
[8, 9, 10, 11] 

>>> range(5) + range(8,12) 
[0, 1, 2, 3, 4, 8, 9, 10, 11] 

Aber in Python 3.5 Sie nicht tun können dies ist der range Typ, der eine unveränderliche Folge von Zahlen darstellt. Weitere Informationen finden Sie unter the docs.

+1

Sie können 'itertools.chain()' in Python 3 verwenden. –

+0

@ForceBru: Ich habe es. Vielen Dank. –

2

Jeder Bereichsausdruck gibt eine Liste zurück: range(1,21) gibt [1,2,...,20] zurück und range(30,100,10) gibt [30,40,...,90] zurück. Der Operator + verkettet die beiden Listen, so dass range(1,21) + range(30,100,10) zu [1,2,...,20,30,40,...,90] ausgewertet wird.

+0

genagelt es. Danke, Greg! –