# List

## 資料結構 (Data Structure)

資料結構是一門電腦科學很重要的一門基礎課，裡面敘述著在軟體的世界中，哪些儲存資料的結構是最基礎的結構。 就像是一個房子裡面，如果你要收納東西，你最快會想到的是箱子，然後是櫃子，然後更高級的才會是衣櫃，衣帽架等等東西。 在軟體世界中，也需要這些很基礎的資料結構來儲存各式各樣的資料，變數代表的只是一個資料結構的名字， 而變數實際上可以代表很多不同型別的東西，如字串，數字，或是一個箱子，一個衣櫃。 我們就先從串列(List)來開始介紹第一個資料結構。

## 串列基本知識

我們來看看以下的範例:

```python
emptyList = []
print(emptyList)
print(type(emptyList))

fruits = ['apple', 'banana', 'cherry']
numbers = [1, 4, 9, 16]
print(fruits)
print(numbers)

# 串列中有串列
listOfList = [['apple', 'banana', 'cherry'], [1, 4, 9, 16]]

# 索引取值
print('fruits[0] is ' + str(fruits[0]))
print('listOfList[1][2] is ' + str(listOfList[1][2]))

# 串列取切片(slice)
print(fruits[0:1])
print(fruits[0:2])
print(fruits[0:3])

# 取得串列長度
print('len(fruits)' + str(len(fruits)))

# 使用索引改變串列的值
fruits[0] = 'durian'
print(fruits)

# 串列的連接
fruitsNumbers = fruits + numbers
print(fruitsNumbers)

# 串列值的刪除
del fruits[0]
del numbers[1]
print(fruits)
print(numbers)
```

前三行說明一個空的串列如何宣告，並且印出空串列的樣子，以及印出串列的型別。

以上這些就是串列的基本操作，其實從程式中就可以看出串列的操作很簡單而且直覺， 就像是一個一連串的盒子，你可以在盒子中放各種型別的值，你也可以在盒子中放另外一個串列。
