2012-11-02 20 views
7

eine Liste flowersSublist in einer Liste

>>> flowers = ['rose','bougainvillea','yucca','marigold','daylilly','lilly of the valley'] 

Dann Erstellt

I thorny die Unterliste der Liste hatte zuweisen flowers bestehend aus den ersten drei Objekte in der Liste.

Dies ist, was ich versuchte:

>>> thorny = [] 
>>> thorny = flowers[1-3] 
>>> thorny 
'daylilly' 
>>> thorny = flowers[0-2] 
>>> thorny 
'daylilly' 
>>> flowers[0,1,2] 
Traceback (most recent call last): 
    File "<pyshell#76>", line 1, in <module> 
    flowers[0,1,2] 
TypeError: list indices must be integers, not tuple 
>>> thorny = [flowers[0] + ' ,' + flowers[1] + ' ,' + flowers[2]] 
>>> thorny 
['rose ,bougainvillea ,yucca'] 

Wie kann ich nur die ersten drei Objekte der Liste Blumen bekommen, während das Aussehen einer Liste in einer Liste beibehalten?

+2

Scheibe Notation wird mit einem Doppelpunkt gemacht, nicht ein Minuszeichen. –

Antwort

13

Slicing Notation ist [:3] nicht [0-3]:

In [1]: flowers = ['rose','bougainvillea','yucca','marigold','daylilly','lilly of the valley'] 

In [2]: thorny=flowers[:3] 

In [3]: thorny 
Out[3]: ['rose', 'bougainvillea', 'yucca'] 
1

Hier gehen Sie:

thorny = flowers[0:3] 
2

Sie wollen flowers[0:3] (oder äquivalent, flowers[:3]) zu tun. Wenn Sie zum Beispiel flowers[0-3] hätten, wäre dies äquivalent zu flowers[-3] (d. H. Der drittletzte Punkt in flowers).

+0

Endlich gibt es eine Antwort, die angibt, wie man einen Offset für das Schneiden setzt! – gsamaras

6

In Python:

thorny = flowers[1-3] 

Dies entspricht flowers[-2] weil (1 - 3 == -2), und das bedeutet, dass es von dem Ende der Liste sieht, das heißt - das zweite Element von dem Ende - zB daylilly ...

Zum Aufschneiden (aber nicht inklusive) der ersten 3 Elemente können Sie thorny = flowers[:3] verwenden, und wenn Sie danach alles wollten, dann ist es flowers[3:].

Haben auf Python ein nachlesen Aufschneiden

0

Es 3 möglich sublist Typen für jede gegebene Liste sein:

e1 e2 e3 e4 e5 e6 e7 e8 e9 e10  << list elements 
|<--FirstFew-->|  |<--LastFew-->| 
     |<--MiddleElements-->| 
  1. FirstFew sind meist präsentiert von + Indizes ve.

    First 5 elements - [:5]  //Start index left out as the range excludes nothing. 
    First 5 elements, exclude First 2 elements - [2:5] 
    
  2. LastFew werden meist von -ve Indizes dargestellt.

    Last 5 elements - [-5:]  //End index left out as the range excludes nothing. 
    Last 5 elements, exclude Last 2 elements - [-5:-2] 
    
  3. MiddleElements kann sowohl positiven als auch negativen Index vorgestellt.

    Above examples [2:5] and [-5:-2] covers this category. 
    

nur die ersten drei Objekte der Liste Blumen

[0 : 3] //zero as there is nothing to exclude. 
or 
[:3] 
Verwandte Themen