2012-11-02 32 views
7

Tạo một danh sách flowerssublist trong một danh sách

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

Sau đó,

tôi phải gán cho danh sách thorny các sublist danh sách flowers bao gồm các đầu tiên fi ba đối tượng trong danh sách.

Đây là những gì tôi đã cố gắng:

>>> 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'] 

Làm thế nào tôi có thể nhận được chỉ là 3 đối tượng đầu tiên của hoa danh sách, trong khi duy trì giao diện của một danh sách bên trong một danh sách?

+2

Slice ký hiệu được thực hiện với một dấu hai chấm, không phải là một dấu trừ. –

Trả lời

13

Slicing ký hiệu là [:3] không [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

Ở đây bạn đi:

thorny = flowers[0:3] 
2

Bạn sẽ muốn làm flowers[0:3] (hoặc tương đương, flowers[:3]). Nếu bạn đã làm flowers[0-3] (ví dụ), nó sẽ tương đương với flowers[-3] (ví dụ: mục thứ ba đến mục cuối cùng trong flowers.).

+0

Cuối cùng, một câu trả lời chỉ định cách đặt bù đắp cho việc cắt! – gsamaras

6

Trong Python:

thorny = flowers[1-3] 

này tương đương với flowers[-2] vì (1-3 == -2), và điều đó có nghĩa là nó trông giống từ cuối danh sách, ví dụ: - yếu tố thứ 2 từ cuối cùng - ví dụ: daylilly ...

Để chia nhỏ (nhưng không bao gồm) 3 thành phần đầu tiên, bạn có thể sử dụng thorny = flowers[:3] và nếu bạn muốn mọi thứ sau đó, thì đó là flowers[3:].

Have a đọc lên trên Python slicing

0

Có thể có 3 loại sublist có thể cho bất kỳ danh sách đưa ra:

e1 e2 e3 e4 e5 e6 e7 e8 e9 e10  << list elements 
|<--FirstFew-->|  |<--LastFew-->| 
     |<--MiddleElements-->| 
  1. FirstFew chủ yếu được trình bày bởi ve chỉ mục.

    First 5 elements - [:5]  //Start index left out as the range excludes nothing. 
    First 5 elements, exclude First 2 elements - [2:5] 
    
  2. LastFew chủ yếu được trình bày bởi ve chỉ mục.

    Last 5 elements - [-5:]  //End index left out as the range excludes nothing. 
    Last 5 elements, exclude Last 2 elements - [-5:-2] 
    
  3. MiddleElements thể được trình bày bằng cả hai chỉ số tích cực và tiêu cực.

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

chỉ là 3 đối tượng đầu tiên của hoa danh sách

[0 : 3] //zero as there is nothing to exclude. 
or 
[:3] 
Các vấn đề liên quan