---
# System prepended metadata

title: 3/12 Python與資料分析#2 - 資料結構
tags: [python, 資料分析]

---

# 3/12 Python與資料分析#2 - 資料結構

## list

直接中括號指定 a = [1,2,3,4]
type(a) 資料型態
len(a) 資料數（放入None '' 都可占用一個資料數）

一些method （a.方法名()）
 輸出a.之後打tab 可提示這些method
 ()之後可以打shit+tab 提示該方法的內容以及參數
執行完之後可能會在jupyter "更動原來物件" 或是 "直接輸出"
直接輸出的話，沒有用變數抓取就沒用了

a.append(k) 新增資料k（不會輸出，直接更動）
a.pop(k) 新增資料k並輸出
a.remove(k) 刪除資料k
a.insert(index, k) 在index的地方插入k
a.sort() 排序（預設小到大，reverse=False），不會輸出但會更新
a.sorted() 同上，會輸出排序後結果但不會更新

a[索引數] 取出該索引的值（0開始，最右邊開始為負號，-1開始）
a[開始:結束但不包含:間隔] 切片某範圍資料，以list型態輸出

## tuple 
不能更動
小括號直接指定a=(1,2,3)

list(tuple名稱) 轉成list
tuple(list名稱) 轉成tuple

rerurn若多個結果，預設用tuple包裝

## dict 
大括號表示{key1:value1, key2:value2, ....}
len代表資料"組數"
value可以是bool str int list dict ...
撈value:輸入 a[key]可以得到value
a[key] = value 新增一組配對
del a[key] 刪除配對

a.keys() 回傳所有key，用list組合
a.values() 回傳所有value，用list組合
a.items() 回傳所有配對，配對部分用tutple，整體用list組合

## set
大括號表示{}
重複的只算一次

兩個set可做邏輯運算
a | b 聯集
a.union(b) 聯集

a & b 交集
a.intersection(b) 交集

a - b 差集
a.difference(b) 差集

a ^ b 對稱差集（也就是a-b聯集b-a 或是a交集b的補集）
a.symmetric_difference(b) 對稱差集

## 結論

Python各種資料型態可以互相巢狀包含
資料儲存彈性大


###### tags: `python` `資料分析`