---
# System prepended metadata

title: 1.資料結構

---

# 1.資料結構
## Class
以車子來舉例
```bash=
# 汽車類別
class Cars:
    # 建構式
    def __init__(self, color, seat):
        self.color = color  # 顏色屬性
        self.seat = seat  # 座位屬性
    # 方法(Method)
    def drive(self):
        print(f"My car is {self.color} and {self.seat} seats.")
```
### 一、類別(Class)
class為自定義類別，裡面可以包含各式各樣的東西，簡單來說就是一個模板或藍圖，可以做出不同的物件
Cars 就是這裡舉例的class
Cars是一種品牌，品牌內的車子想長什麼樣子就是我們自己定義的

### 二、建構式(Constructor)
在class中賦予屬性
舉例來說，在這裡定義了一個Car的class,我希望這個車子有顏色跟座位的選項可以選，因此在一開始就要先跟廠商說我要有self.color 和 self.seat 兩個屬性

### 三、方法(Method)
在class中的fuction
可以想像是物件(Object)的行為，例如介紹自己做出來的車
```bash=
    def drive(self):
        print(f"My car is {self.color} and has {self.seat} seats.")
```


### 四、物件(Object)
class (模板)定義完之後就可以開始製造真正的車子
object是class定義出來的東西，模板做出來的東西
```bash=
mazda = Cars()
```
mazda就是object

### 五、屬性(Attribute)
Attribute負責存放物件(Object)的資料
class有說我們可以選擇顏色跟座位，因此創建完object後我們能選擇要什麼顏色和幾個座位，當作為Object的屬性
```bash=
mazda = Cars()  # 建立Cars類別的物件 
mazda.color = "blue"  #顏色屬性 
mazda.seat = 4  #座位屬性
```
這樣我們就做出一台藍色有4個座位的馬自達車了
    
### 六、呼叫mathod
在創建出來的object後面加上.以及class中的mathod
```bash=
    mazda.drive()
```

## Stack
Stack 是一個線性（linear）資料的集合
就像是疊盤子，放的時候會放在最上面，拿的時候也從最上面開始拿
![](https://i.imgur.com/QOi8CNK.png)
```bash=
    stack.push()
    stack.pop()
```

## Dictionary
字典可用於複雜的對照組何
可使用key去查詢value
```bash=
d = {key1: value1, key2: value2}
key in d
value in d[key]
#新增或修改
dictName[key] = value

```