# List Example

## 使用串列的例子

串列的目的當然是為了讓寫程式更加直覺，更加方便，以及與我們的自然世界有一個邏輯上的觀念連接。

我們來看看以下的範例:

```python
print('your favorite fruit is?')
fruit1 = input()
print('your favorite fruit is?')
fruit2 = input()
print('your favorite fruit is?')
fruit3 = input()
# 然後一直增加下去

print('my favorite fruits are: ' + fruit1 + ', ' + fruit2 + ', ' + fruit3)
```

再看看以下的範例：

```python
favoriteFruits = []
while True:
    print('your favorite fruit is?')
    userInput = input()
    if userInput == '':
        break
    elif userInput not in favoriteFruits:
        favoriteFruits = favoriteFruits + [userInput]
    else:
        continue

print('my favorite fruits are: ' + str(favoriteFruits))
```

這兩個範例的差別是？

我們不可能寫一個軟體是，當我們需要的時候才去增加變數，然後變數無止盡的增加下去，如果有10個最愛的水果，那就要命名10個變數，與10次的指派， 1000個就1000行程式的指派，這樣是非常不彈性的，所以我們需要資料結構的幫忙。

也就是說，好的工具設計，就能有效的解決特定的問題，工欲善其事，必先利其器。

不同的資料結構，就有不同的使用時機，在未來看到越多的程式，我們就會越知道我們要用什麼工具。

## in and not in

我們來看看以下的範例:

```python
fruits = ['apple', 'banana', 'cherry']
for f in fruits:
    print(f)
    
print('apple' in fruits)
print('apple' not in fruits)
```

`in`與`not in`關鍵字其實就如同字面上的意思，蘋果在fruits裡面嗎？蘋果不在fruits裡面嗎？ 所以最後兩行會印出True跟False
